- 1、本文档共107页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
3.示例:调整对话框背景颜色设置对话框背景颜色有许多方法,这里采用最简单的也是最直接的方法,即通过映射WM_CTLCOLOR来达到改变背景颜色的目的。本例通过滚动条和两个滑动条来调整VisualC++所使用的RGB颜色的三个分量:R(红色)、G(绿色)和B(蓝色),如下图所示。3.3常用控件[例Ex_BkColor]调整对话框背景颜色1)创建并设计对话框(1)创建一个默认的对话框应用程序Ex_BkColor。(2)将对话框的标题设为“调整对话框背景颜色”。将[确定]按钮标题改为“退出”。(3)打开对话框网格,为对话框添加一些控件。(4)依次为下列控件增加成员变量。(5)为CEx_BkColorDlg类添加两个成员变量,一个是int型m_nRedValue,用来指定RGB中的红色分量,另一个是画刷CBrush类对象m_Brush,用来设置对话框背景所需要的画刷。3.3常用控件2)完善代码(1)在CEx_BkColorDlg::OnInitDialog中添加下列初始化代码。(2)用MFCClassWizard为CEx_BkColorDlg类添加WM_HSCROLL消息映射,并添加下列代码。(3)用MFCClassWizard为CEx_BkColorDlg类添加WM_CTLCOLOR消息映射,并添加下列代码。3.3常用控件代码中,COLORREF是用来表示RGB颜色的一个32位的数据类型,它是VisualC++中一种专门用来定义颜色的数据类型。(4)编译运行并测试。说明:●由于滚动条和滑动条等许多控件都能产生WM_HSCROLL或WM_VSCROLL消息,因此当它们是处在同一方向(水平或垂直)时,就需要添加相应代码判断消息是谁产生的。●由于滚动条中间的滚动块在默认时是不会停止在用户操作的位置处的,因此需要调用SetScrollPos函数来进行相应位置的设定。3.3常用控件3.4通用对话框和消息对话框3.4.1通用对话框所有这些通用对话框类都是从一个公共的基类CCommonDialog派生而来。对话框用途CColorDialog颜色对话框,允许用户选择或创建颜色CFileDialog文件对话框,允许用户打开或保存一个文件CFindReplaceDialog查找替换对话框,允许用户查找或替换指定字符串CPageSetupDialog页面设置对话框,允许用户设置页面参数CFontDialog字体对话框,允许用户从列出的可用字体中选择一种字体CPrintDialog打印对话框,允许用户设置打印机的参数及打印文档用户可以在程序中直接使用这些通用对话框,例如下列代码运行后将弹出如图3.55所示的对话框。选定一个文件后,单击[打开]按钮,就会弹出一个消息对话框,显示该文件的全路径名称。(参见以下代码)3.4通用对话框和消息对话框3.4.2消息对话框消息对话框是最简单的一类对话框,它只是用来显示信息的。它们的函数原型如下:intAfxMessageBox(LPCTSTRlpszText,UINTnType=MB_OK,UINTnIDHelp=0); intMessageBox(LPCTSTRlpszText,LPCTSTRlpszCaption=NULL,UINTnType=MB_OK);3.4通用对话框和消息对话框在使用消息对话框时,图标类型和按钮类型的标识可使用按位或运算符“|”来组合。 intnChoice=MessageBox(你喜欢VisualC++吗?,提问, MB_OKCANCEL|MB_ICONQUESTION); if(nChoice==IDYES){//... }3.4通用对话框和消息对话框3.5综合应用如(a)图所示,列表框内容用来显示一个学生信息的记录,包括:班级、姓名、学号、性别、出现年月。单击[更新]按钮,将弹出“学生信息”对话框,如图(b)所示,在该对话框中输入学生的信息,单击[确定]按钮,对话框消失,其信息内容在列表框中更新。(a)(b)[例Ex_A3]第三章综合应用1)创建应用程序
文档评论(0)