第2章-对话框应用程序课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第2章-对话框应用程序课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 对话框 应用程序 课件
- 资源描述:
-
1、第二章 对话框应用程序 几种基本对话框的原理和实现方法,以及实用对话框程序的设计技巧对话框的两种形式v示例v1、模态对话框v2、非模态对话框 创建模态对话框后,应用程序只会响应该对话框的消息,创建模态对话框后,应用程序只会响应该对话框的消息,直到收到结束模态对话框消息后,才会把控制权交还给应用直到收到结束模态对话框消息后,才会把控制权交还给应用程序,转而执行其它的消息。程序,转而执行其它的消息。 创建非模态对话框后,应用程序不会垄断用户的输入,创建非模态对话框后,应用程序不会垄断用户的输入,仍然可以响应其它窗口的消息。仍然可以响应其它窗口的消息。2.1 模态对话框v1、windows是基于消息
2、驱动机制的;v2、模态对话框产生后会屏蔽其它窗体消息;v3、应用程序只会响应当前模态对话框的消息,直至被关闭;v4、大多数窗口都属于该类型。v示例(1)新建项目(2)创建基于对话框的应用程序(3)通过资源视图打开主界面编辑(4)添加按钮,ID号为:IDC_CREATE_DIALOG(5)添加新对话框,ID号为:IDD_MODAL_DIALOG(6)为新对话框添加类(7)新类名:CMyModalDialog(8)回到主界面,添加按钮的消息响应(9)消息类型、类列表(10)添加代码(11)编译结果(12)解决方案:添加头文件包含(13) 再次编译:正确(14)执行结果:点击按钮,出现新对话框(为模
3、态对话框)(15)结果及分析v左对话框无法接受用户输入,直到关闭右边模态对话框v原因:CMyModalDialog dlg;dlg.DoModal();/创建模态对话框创建模态对话框本节小结v模态对话框的特性v创建一个简单模态对话框的步骤2.2 非模态对话框v非模态对话框窗口打开时,可以接受其它窗口消息v此类对话框较少v示例1、创建一个基于对话框的应用程序,并在主界面上添加一个按钮2、添加一个新对话框,并添加新类:CMyNoModalDialog3、为主界面上的按钮添加消息响应4、执行结果:焦点可回到父窗口,从而创建多个非模态对话框5、结果及分析v焦点没有停留在子窗口上,说明创建了一个非模态对
4、话框窗口v代码分析/定义对话框对象指针CMyNoModalDialog* pDlg=new CMyNoModalDialog();/创建非模态对话框pDlg-Create(IDD_DIALOG1,this);/显示对话框pDlg-ShowWindow(SW_SHOW);vCDialog类的成员函数:Create;原型BOOl Create(LPCTSTR lpszTemplateName,CWnd* pParentWnd=NULL);BOOL Create(UINT nIDTemplate,CWnd* pParentWnd=NULL);/指定对话框模板的名称指定对话框模板的名称/也可以是对话框
5、的也可以是对话框的ID号号/第二个第二个 参数指定了对话框的父窗口参数指定了对话框的父窗口此后,还要调用此后,还要调用ShowWindow来显示对话框来显示对话框5、结果及分析(续)/定义对话框对象指针CMyNoModalDialog* pDlg=new CMyNoModalDialog();/创建非模态对话框pDlg-Create(IDD_DIALOG1,this);/显示对话框pDlg-ShowWindow(SW_SHOW); 定义为指针:在堆上分配内存,与整个程定义为指针:在堆上分配内存,与整个程序的生命周期是一致的,在程序结束时才会被序的生命周期是一致的,在程序结束时才会被释放;或者定
6、义一个类的全局变量来控制无模释放;或者定义一个类的全局变量来控制无模式对话框的打开;式对话框的打开; 若定义为局部变量,则无法创建。若定义为局部变量,则无法创建。示例示例 5、结果及分析(续)5、结果及分析(续)v修改后的代码CMyNoModalDialog dlg;dlg.Create(IDD_DIALOG1,this);dlg.ShowWindow(SW_SHOW);5、结果及分析(续)修改后的结果5、结果及分析(续)修改后的结果结果:点击按钮创建非模态对话框结果:点击按钮创建非模态对话框窗口后闪烁一下后就立即关闭了窗口后闪烁一下后就立即关闭了本节小结v非模态对话框的特性v创建一个非模态对
7、话框的步骤及注意事项2.3 属性对话框v属性对话框是一种比较特殊的对话框模式,它可以把多个独立的对话框有效合理地组织起来v示例实例效果图及实现步骤1、创建一个基于对话框的项目2、解决方案资源管理器-添加-资源3、添加资源 对话框4、属性页资源(大、中、小)/出现在对话框中,因此属出现在对话框中,因此属性页是对话框的一种形式,性页是对话框的一种形式,可当做对话框来处理。可当做对话框来处理。5、添加三个属性页资源6、添加基于CPropertyPage类的新类7、添加基于CPropertySheet类的CMySheet类7、添加基于CPropertySheet类的CMySheet类(续)7、添加基于
8、CPropertySheet类的CMySheet类(续)8、在CMySheet中定义3个属性页/MySheet.h文件中添加文件中添加9、在CMySheet构造函数中添加3个属性页/在在MySheet.cpp文件中文件中,构构造函数是与类同名的函数造函数是与类同名的函数10、显示属性对话框/在应用程序实现文件的在应用程序实现文件的InitInstance()函数中添加函数中添加11、运行效果本节小结v属性对话框的创建v注意事项:添加资源的方法设置资源ID的方法为资源添加类的方法添加新类的方法在头文件中定义变量和在实现文件的构造函数中初始化变量的方法2.4 对话框设计技巧v1、网格和参考线v2、
展开阅读全文