第十一章对话框.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第11章 对话框 对话框是Windows应用程序与用户进行交互的重要手段。 对话框是CDialog类的对象, CDialog类从CWnd派生 从程序设计的角度来看,设计一个对话框要做两项工作,即编写对话框模板资源描述文件和派生对话框类 11.1 对话框模板资源描述文件 对话框资源描述文件描述了对话框的外观以及控件的安装,该文件的格式为: 对话框名 DIALOG [载入特性选项]X,Y,Width,Height [设置选项] BEGIN 对话框上控件的定义 END 其中,设置选项一般包括CAPTION(对话框标题)、FONT(字体)和STYLE (样式)等 对话框样式选项STYLE决定了对话框的外貌,除了可选用窗口的一般样式外,系统还定义了对话框所特有的样式,见下表 对话框中经常使用的控件 在Visual Studio的开发环境IDE里面,人们经常使用系统提供的可视化工具来创建对话框模板资源 在工程管理窗口中选择Resource View选项卡,在该选项卡的Dialog文件夹上单击鼠标右键,在随后的弹出菜单中选择Insert Dialog选项,这样开发环境就会以可视化形式提供一个默认的对话框,同时在Resource View选项卡的Dialog文件夹中增加一个资源文件IDD_DIALOG1,开发环境还预置了两人个常用按钮OK和Cancel,如果不想使用它们可以删除 11.2 自定义对话框类 程序员可以用MFC提供的对话框类CDialog派生自己的对话框 11.2.1 MFC的对话框类及用户自定义对话框类 用户自定义对话框类要由类CDialog派生 类CDialog有两个构造函数,它们是: CDialog(LPCTSTR lpszTemplateName, CWnd *pParentWnd = NULL); 和 CDialog(UINT nIDTemplate, CWnd *pParentWnd = NULL); 第一个参数为对话框模板资源的名称或其ID,第二个参数为父窗口的指针 由于CDialog类的构造函数带有参数,故自定义的对话框派生类必须声明构造函数,且在构造函数中引用基类CDialog类的构造函数,以便传递对话框的模板指针或ID值 通过IDE派生类 在实际的程序设计工作中,更经常的是使用开发环境提供的编程工具来派生对话框类 打开对话框资源,用鼠标双击对话框,在随后出现的New Class对话框中填写各项的内容,单击”确认”按钮,即可生成自定义类的代码 11.2.2 模态对话框 1. 模态对话框的创建 在创建自定义对话框类后,就可以在需要使用对话框的地方使用它了。 如果使用CDialog类的成员函数DoModal()来创建对话框,则该对话框就是一个模态对话框 DoModal()的原型为: virtual int DoModal(); DoModal()函数首先载入对话框模板资源,接下来调用OnInitDialog()函数,并在该函数中调用UpdateData()初始化对话框上的控件。然后,该函数将启动一个消息循环,以响应用户的输入。 特点:该消息循环截获了几乎所有的用户输入消息,从而使应用程序的主消息循环收不到用户消息,致命用户只能对对话框进行交互 当用户单击OK或者Cancel按钮,函数DoModal()将被结束,并在DoModal()结束之前,将对话框对象销毁 2. OK按钮和Cancel按钮 在系统提供的对话框模板上,系统预置了OK和Cancel两个按钮,并为这两个按钮编写了相应的代码 当用户按下OK按钮时,会调用消息响应函数CDialog::OnOk(). OnOk()首先调用UpdateData()函数读取控件上的数据,并把它传递给对话框类中与该控件对应的成员变量,然后调用CDialog::EndDialog()函数关闭对话框,并以OK按钮的标识值IDOK为DoModal()函数的返回值 当按下Cancel按钮进,会调用CDialog::OnCancel()函数,而它只调用CDialog::EndDialog()函数来关闭对话框,并以Cancel按钮的标识值IDCANCEL为DoModal()函数的返回值. 例11-1 创建一个应用程序,在运行时如果在窗口用户区单击鼠标左键则会出现如图所示的外观的模态对话框 (1) 用MFC AppWizard创建一个名为MFCexp11_1的单文档界面应用程序 (2) 使用IDE的可视化设计工具创建对话框模板资源,得到系统默认的对话框 (3) 使用工具箱向对话框上添加需要的控件并调整OK和Cancel按钮的位置使之符合题目要求 (4) 用鼠标左键双击对话框,系统打开一个如图

文档评论(0)

wxc6688 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档