4.设置静态框字符和背景的颜色
静态控件框字符和背景一般使用系统默认的颜色,但也 可以改变默认设置,选择用户所需的色彩。为了改变控件的 颜色,一般需要在控件的父窗口(通常是对话框)中添加一 个窗口响应函数OnCtlColor( )。当控件需要重画时, OnCtlColor( )函数会被自动调用,此函数专门用于更改窗口、字符、字符背景颜色或窗口底色。
现在,通过本示例介绍该函数的使用方法。回到项目工作区,在项目工作区窗口展开CCh1Dlg类,双击响应函数OnCtlColor( )。代码窗口的光标被移到OnCtlColor( )处,为了改变静态控件IDC_STATIC1字符和背景的颜色,只需在该函数中加入如下代码即可实现:
HBRUSH CCh1Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) {
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here HBRUSH m_brush; //定义画刷句柄 switch(nCtlColor) {
case CTLCOLOR_STATIC: //改变静态控件字符的和背景颜色
//判断当前重画的控件是否为IDC_STATIC if(pWnd->m_hWnd==m_Static1.m_hWnd|| pWnd->m_hWnd==m_Static2.m_hWnd) {
pDC->SetBkMode(TRANSPARENT); //设置透明模式 pDC->SetTextColor(RGB(255,255,0));//设置字符为黄色
m_brush=CreateSolidBrush(RGB(0,0,255));//创建蓝色画刷
return m_brush;//用蓝色画刷重画控件底色 }
break; }
// TODO: Return a different brush if the default is not desired return hbr; }
运行程序,时钟框和日历框出现了蓝底黄字(如图1-3 所示)。
图1-3 1.3 按钮控件
1.按钮控件与CButton类
按钮控件是Windows应用程序中常用的控件,用户通过单击按钮产生一个事件,从而该按钮的响应函数被激励运行,完成预定的功能。
现在我们为CCh1Dlg类添加一个按钮控件,按钮标题: 更改
步骤如下:
(1)添加按钮。用鼠标器单击右边控件工具栏中按钮控件(Button)按钮,通过鼠标在时钟框的下方拖曳出一个按钮, 调整按钮到合适的大小;
(2)打开按钮控件属性对话框。右击该按钮,从弹出菜单中选择属性(Properties)菜单项,弹出属性(Text Properties)对话框;
(3)更改按钮文本内容。在属性对话框中选择General页,ID框的标识符IDC_BUTTON1保持不变,将Caption框的内容修改为:更改;
(4)单击属性对话框右上角的关闭按钮,关闭属性对话框; (5)右击[确认]按钮,从弹出菜单中选择属性(Properties)菜单项,弹出属性(Text Properties)对话框; (6)在属性对话框中选择General页,ID框的标识符IDOK保持不变,将Caption框的内容修改为:返回;
(7)单击属性对话框右上角的关闭按钮,关闭属性对话框。 最后的设计界面(如图1-4所示)。
图1-4
2.按钮响应函数
可以方便地为CCh1Dlg类添加按钮的响应函数。操作如下: (1)参阅图1-4,双击[更改]按钮,弹出Add Member Function对话框;
(2)在Add Member Function对话框中输入成员函数名:OnButton1;
(3)按[OK]按钮,退出Add Member Function对话框。 下面将通过该按钮实现如下功能:
程序以两种方式显示当前时间,一种是24小时制,蓝底黄字;另一种是12小时制,黄底蓝字。要求通过单击[更改]按钮能在两种显示方式之间切换。为此,程序设计如下: (1)在CCh1Dlg类的头文件中增加一个整型的成员变量flag,当flag=0时,以第一种方式显示;当flag=1时,以
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Visual C++基于对话框的MFC应用程序 - 简单的时钟实例实验一(3)在线全文阅读。
相关推荐: