在运行时更改编辑框的颜色

时间:2013-09-02 06:49:21

标签: c++ visual-c++ mfc

如果用户在MFC中修改其内容,如何更改编辑框的背景颜色。 如何在编辑控件的ON_EN_CHANGE MSg中更改它。

1 个答案:

答案 0 :(得分:1)

基本上你的解决方案是

    HBRUSH CEditDialog::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
    {
              switch (nCtlColor) {

              case CTLCOLOR_EDIT:
              case CTLCOLOR_MSGBOX:
                  // Set color to green on black and return the background
                     brush.
                  pDC->SetTextColor(RGB(0, 255, 0));
                  if(ChangeColor == TRUE)
                  {
                      pDC->SetBkColor(RGB(0, 0, 0));
                      ChangeColor = FALSE;
                  }
                  return (HBRUSH)(m_pEditBkBrush->GetSafeHandle());

              default:
                  return CDialog::OnCtlColor(pDC, pWnd, nCtlColor);


}

}

现在,您希望在文本更改时更改文本框颜色,

    ::OnEnchange()
{
   ChangeColor = TRUE;      //Its global flag maintain in any global position may be in your .H file.
}