from http://www.cppblog.com/FandyM/archive/2010/07/21/120972.aspxshell
MFC应用程序中,要改变控件的背景色可经过重载OnCtlColor()函数来实现。方法是在该函数中设置所需颜色后再返回一个画刷句柄即可 重绘控件背景色。OnCtlColor()函数对于控件背景色的处理是经过捕捉相应的控件消息来实现的。
经常使用的此类消息有:
CTLCOLOR_DLG 对话框
CTLCOLOR_EDIT 编辑框
CTLCOLOR_LISTBOX 列表框
CTLCOLOR_MSGBOX 消息框
CTLCOLOR_SCROLLBAR 滑动条
CTLCOLOR_STATIC 静态文本框、矩形等。
主要有三步:
1. 声明消息响应函数
//{{AFX_MSG(CMyDialog)
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
……
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
2. 实现消息响应函数
以编辑框举例:函数
3. 添加消息映射
BEGIN_MESSAGE_MAP(CMyDialog, CDialog)
ON_WM_CTLCOLOR()
END_MESSAGE_MAP()
注意:此方法不适用于按纽控件。 spa