改变控件颜色问题
改变控件颜色问题
改变控件颜色,一般都是响应一个反射的消息:ON_WM_CTLCOLOR_REFLECT (=WM_CTLCOLOR)
在不改变任何的情况下,函数如下:
HBRUSH CMyEdit::CtlColor(CDC* pDC, UINT nCtlColor)
{
// TODO: Change any attributes of the DC here
// TODO: Return a non-NULL brush if the parent's handler should not be called
return NULL;
}
如果最后返回一个NULL, 他的父类将被调用,反之则不然。
为了获得控制权,创建一个STATIC 的 CBrush 类。 m_brBackGnd;你可以在初始化,比如构建函数的时候调用:
m_brBackGnd.CreateStockObject(RGB(255,255,255));//创建一个白色背景.
而改变控件字体颜色,一般使用 pDC->SetTextColor 达到目的.