在CEdit编辑框内容改变时,如何改变CEdit控件的背景色,以显示这种改变?谢谢!

解决方案 »

  1.   

    用对话框类的onctlcolor 消息映射
    HBRUSH CMyDialog::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) {switch (nCtlColor) { case CTLCOLOR_EDIT:case CTLCOLOR_MSGBOX:case CTLCOLOR_DLG : case CTLCOLOR_EDIT : //在此加入你想要改变背景色的控件消息pDC->SetBkMode(TRANSPARENT);HBRUSH B = CreateSolidBrush(COLOR); //COLOR是你想设置的颜色 return (HBRUSH) B;default: //其他控件设置自己默认的颜色和背景刷.return CDialog::OnCtlColor(pDC, pWnd, nCtlColor); }}
      

  2.   

    当然可以不用自话文本框了。
    我这有一个从CEdit派生的类,可以完成改变背景色和文本色的功能(一个外国人写的)。
    你可以从www.codeproject.com中下载。
      

  3.   

    上面哪个森林浪人写的是对了,就是在return (HBRUSH) B之前加上RedrawWindow(),你试试,看可以否?