在对话框中,如何改变静态文本字的颜色或EDIT中字的颜色或EDIT中背景颜色,我把函数声明放到类的PUBLIC中,把程序中用的全局变量放在CPP程序的开头处,规范吗?

解决方案 »

  1.   

    1.在对话框的onctlcolor中处理
    2.不规范,在面向对象要尽可能消除全局变量..
      

  2.   

    1.1
    为你的对话框添加一个成员变量用来保存控件背景色的画刷
    HBRUSH hbrush;
    在对话框构造函数中建一个刷子:
    hbrush=CreateSolidBrush(RGB(255,0,255));
    在对话框析构函数中把这个GDI对象删除:
    DeleteObject(hbrush)1.2
    在对话框中添加wm_ctlcolor的消息处理函数
    HBRUSH CYourDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    {
    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
    if(pWnd->GetDlgCtrlID()==IDC_STATIC){
    return hbrush;
    } return hbr;
    }
    上述代码将给ID为IDC_STATIC 的静态控件返回一个已初始化的画刷!