改进二:改变对话框的外观 我们可以改变对话框的背景颜色,或对话框中的控件颜色以使得程序界面不至于千篇一律,如何做呢?每个控件和对话框在显示之前回发送WM_CTLCOLOR消息,如果派生对话框类对WM_CTLCOLOR消息进行了映射,就可以设定文本的前景色和背景色。同时还可以为控件或对话框的非文本区域选择一个刷子。 WM_CTLCOLOR消息对应的函数为OnCtlColor,OnCtlColor函数的原型为:afx_msg HBRUSH OnCtlColor( CDC* pDC, CWnd* pWnd, UINT nCtlColor );其中参数pDC是:一个指向设备环境的指针。pWnd:指定特定的控件。nCtlColor:指明控件类型。 可以有以下类型: CTLCOLOR_BTN button control CTLCOLOR_DLG dialog box CTLCOLOR_EDIT edit control CTLCOLOR_LISTBOX list box CTLCOLOR_MSGBOX message box CTLCOLOR_SCROLLBAR scroll bar CTLCOLOR_STATIC static text, frame, or rectangle 现在为了突出显示文本框的显示号码,我们将文本框的文字背景设为黄色。 步骤1、添加一个成员变量 HBRUSH m_hBrush; 步骤2、用Class Wizard为CGuessDlg加入WM_CTLCOLOR消息,并编辑OnCtlColor函数: HBRUSH CGuessDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { if(nCtlColor==CTLCOLOR_EDIT){ pDC->SetBkColor (RGB(255,255,0));//EDIT控件文字背景为黄色 return m_hBrush; } return CDialog::OnCtlColor (pDC,pWnd,nCtlColor); } 编译运行,怎么样,文本框内的文字均变为黄底了。关于对话框的外观我们将在以后再说。 |
正在阅读:『VC++技术内幕』学习笔记(10)『VC++技术内幕』学习笔记(10)
2004-02-14 09:34
出处:PConline
责任编辑:zwg
键盘也能翻页,试试“← →”键