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