CEdit 当在readonly的时候背景色是灰色的,如何重载才能让他变成白色呢?

解决方案 »

  1.   

    WM_CTLCOLOR消息如果只是针对某个edit
    if(pWnd->GetDlgCtrlID()==IDC_EDITXXX)
    {
    // 白刷子
    ...
    }
    如果有多个readonly的edit,并且都要使其背景为白色,则
    if(nCtlColor == CTLCOLOR_STATIC)
    {
    // 获取窗口类名
    ::GetClassName(pWnd->GetSafeHwnd(),...);
    // 如果类为Edit,并且是只读的,设置白色背景刷子
    ...
    }
      

  2.   

    可是我的CEdit是在cView中create出来的,请问怎么办
      

  3.   

    可不可以换一个思路,不设置Read-only属性,而从CEdit继承一个类,重载派生类的OnChar()函数,让控件不接收消息,还可以重载其它一些函数,如不响应右键菜单等...可以满足更多的要求.本人初学,请勿见笑!
      

  4.   

    to  koUu(koUu) :我也是这么想的