如何在V C 中改变控件的背景色 在VC 编程中要改变控件(诸如CView, CFrameWnd, or CWnd 等)的背景色可通过处理特定的消息来实现
但如果想改变按钮的颜色,就只能使用自绘制的按钮(也可以用位图按钮,此处未做说明)而不能通过OnCtlColor()改变
一、在一个MFC 应用程序中,要改变控件的背景色可通过重载 OnCtlColor()函数来实现
方法是在该函数中设置所需颜色后再返回一个画刷句柄便可重绘控件背景色
OnCtlColor()函数对于控件背景色的处理是通过捕捉相应的控件消息来实现的
常用的此类消息有: CTLCOLOR_DLG 对话框 CTLCOLOR_EDIT 编辑框 CTLCOLOR_LISTBOX 列表框 CTLCOLOR_MSGBOX 消息框 CTLCOLOR_SCROLLBAR 滑动条 CTLCOLOR_STATIC 静态文本框、矩形等
以下示例代码说明如何更改以上控件的背景色: //CmyDialog
h 定义 class CMyDialog : public Cdialog //派生自己的对话框类 { … …
// Implementation protected: // Generated message map functions //{{AFX_MSG(CMyDialog) afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor); … …
//}}AFX_MSG DECLARE_MESSAGE_MAP() }; //CmyDialog
cpp 定义 … … HBRUSH CMyDialog::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { switch (nCtlColor) { c