- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
讲座四 VS2010(MFC)编程--几种常见对话框
VS2010(MFC)编程--几种对话框VS2010/MFC编程:模态对话框及其弹出过程加法计算器对话框程序大家照着做一遍后,相信对基于对话框的程序有些了解了,有个好的开始对于以后的学习大有裨益。趁热打铁,这一节讲讲什么是模态对话框和非模态对话框,以及模态对话框怎样弹出。?????? 一.模态对话框和非模态对话框?????? Windows对话框分为两类:模态对话框和非模态对话框。????? ?模态对话框是这样的对话框,当它弹出后,本应用程序其他窗口将不再接受用户输入,只有该对话框响应用户输入,在对它进行相应操作退出后,其他窗口才能继续与用户交互。????? ?非模态对话框则是,它弹出后,本程序其他窗口仍能响应用户输入。非模态对话框一般用来显示提示信息等。?????? 大家对Windows系统很了解,相信这两种对话框应该都遇到过。之前的加法计算器对话框其实就是模态对话框。?????? 二.模态对话框是怎样弹出的?????? 毕竟加法计算器程序大部分都是MFC自动生成的,对话框怎么弹出来的大家可能还不是很清楚。下面简单说说它是在哪里弹出来的,再重新建一个新的对话框并弹出它,这样大家实践以后就能更灵活的使用模态对话框了。?????? 大家打开Addition.cpp文件,可以看到CAdditionApp类有个InitInstance()函数,在MFC应用程序框架分析中提到过此函数,不过那是单文档应用程序App类中的,函数体不太相同,但都是进行App类实例的初始化工作。?InitInstance()函数的后半部分有一段代码就是定义对话框对象并弹出对话框的,下面给出这段代码并加以注释:C++代码CAdditionDlg?dlg;????????//?定义对话框类CAdditionDlg的对象dlg ??m_pMainWnd?=?dlg;?????? //?将dlg设为主窗口??INT_PTR?nResponse?=?dlg.DoModal();???//?弹出对话框dlg,并将DoModal函数的返回值(退出时点击按钮的ID)赋值给nResponse ??if?(nResponse?==?IDOK)???????????????//?判断返回值是否为OK按钮(其ID为IDOK,已经将它删除)??{ ????? //?TODO:?Place?code?here?to?handle?when?the?dialog?is ??????//??dismissed?with?OK ??} ??else?if?(nResponse?==?IDCANCEL)??????//?判断返回值是否为Cancel按钮(其ID为IDCANCEL,鸡啄米将它的Caption改为了“退出”)??{ ????? //?TODO:?Place?code?here?to?handle?when?the?dialog?is ????? //??dismissed?with?Cancel ??}?????????弹出对话框比较关键的一个函数,就是对话框类的DoModal()函数。CDialog::DoModal()函数的原型为:???????virtual INT_PTR DoModal(); ???????返回值:整数值,指定了传递给CDialog::EndDialog(该函数用于关闭对话框)的nResult参数值。如果函数不能创建对话框,则返回-1;如果出现其它错误,则返回IDABORT。???????调用了它对话框就会弹出,返回值是退出对话框时所点的按钮的ID,比如,我们点了“退出”按钮,那么DoModal返回值为IDCANCEL。?????? 三.添加一个新对话框并弹出它???????再为加法计算器程序添加一个对话框,以在计算之前询问用户是否确定要进行计算。大家可以完整的看下对话框的添加和弹出过程。???????1.根据“创建对话框模板和修改对话框属性”中所讲的方法,在Resource View中的“Dialog”上点右键选择“Insert Dialog”,创建一个新的对话框模板,修改其ID为IDD_TIP_DIALOG,Caption改为“提示”,然后参考“为对话框添加控件”中所讲,在对话框模板上添加一个静态文本框(static text),Caption改为“您确定要进行加法计算吗?”,接下来修改OK按钮的Caption为“确定”,Cancel按钮的Caption为“取消”,最后调整各个控件的位置和对话框的大小。最终的对话框模板如下图:???????2.根据“创建对话框类和添加控件变量”中创建对话框类的方法,在对话框模板上点右键选择“Add Class...”,弹出添加类的对话框,设置“Class name”为CTipDlg,点“OK”。在Solution
您可能关注的文档
最近下载
- 肾脏囊性病变Bosniak分级.pptx VIP
- 黑布林英语阅读高一9《绿房间》译文.docx
- 大学生安全教育(本科)PPT完整全套教学课件.pptx
- 2025年乡镇禁毒办禁毒社工招聘笔试预测试题及答案.doc VIP
- 肠内营养并发症预防与处理.pptx VIP
- 诗歌鉴赏寄江州白司马课件2024届高考语文复习.pptx VIP
- 营销策略的案例分析.pptx VIP
- PFNA在股骨粗隆间骨折的应用.pptx
- 《2 欢快流畅的线》教学设计2024-2025学年小学美术一年级上册人美版(2024).docx VIP
- 2025年全球软实力指数排名报告:中国排名全球第二-BrandFinance-2025_可搜索.pdf
文档评论(0)