- 1、本文档共41页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 对话框 第6章 对话框 在Windows程序中,对话框是最重要的显示信息和取得用户数据的单元; 一个应用程序可以拥有几个对话框,这些对话框从用户那里接受特定类型的信息 ; 可以使用资源编辑器创建对话框资源,向其中添加控件,调整对话框的布局,使对话框更加便于使用。 6.1 消息映射 WINDOWS中消息主要有以下三种类型: 标准的WINDOWS消息:这类消息是以WM_为前缀,例如WM_COMMAND、 WM_MOVEWM_QUIT等; 命令消息:命令消息以WM_COMMAND为消息名。 控件通知消息:控件通知消息也是以WM_COMMAND为消息名。 6.1 消息映射(续) 对于标准的Windows消息,在CWnd类中已经预定义了默认的处理函数。这些函数以On开头,以它响应的Windows WM_消息名后半部分作为函数名的后半部分 ; 对于控件通知消息和命令消息,一般没有默认的消息处理函数,其函数名理论上可以随意,但最好遵守一些约定,如以On开头。当用ClassWizard加入这两种消息处理函数时,它会提供一个建议的函数名。 6.1 消息映射(续) 消息映射包括了两部分: 一部分存在于头文件中。在类的定义中加上一行宏调用: DECLARE_MESSAGE_MAP() 另一部分存在于类的实现文件(.cpp文件)中。在文件中加上消息映射表: BEGIN_MESSAGE_MAP(类名,父类名) … … 消息映射入口项 …… END_MESSAGE_MAP() 6.2 定义对话框 对话框大致可以分为以下两种: 模态对话框 模态对话框弹出后,独占了系统资源,用户只有在关闭模态对话框后,才可以继续执行应用程序其他部分的代码。模态对话框一般要求用户做出某种选择。 非模态对话框 非模态对话框弹出后,程序可以在不关闭对话框的情况下继续执行,在转入到应用程序其他部分的代码时可以不需要用户做出响应。非模态对话框一般用来显示信息,或者实时的进行一些设置。 6.2 定义对话框(续) 一般的对话框的创建与使用流程可以大体分为以下步骤: 1.创建对话框资源 2.创建与对话框资源相关的对话框类的派生类 3.创建有关控件的消息响应 4.创建与控件相关联的变量 5.在程序中创建对话框类派生类的对象 6.调用DoModal或 Creat函数显示对话框 对话框实例 : 步骤1.使用AppWizard创建一个基于对话框类型的程序Eg6_1。 注意在AppWizard的第一页选择“Dialog based” 。 步骤2. AppWizard创建新项目完成后,在工作区单击ResourceView标签来修改程序的资源,双击资源文件夹中的Dialog,然后双击IDD_EG6_1_DIALOG项 ,打开下图所示的对话框。 对话框实例 (续) 对话框实例 (续) 步骤3.可以设置对话框的属性,右键单击整个对话框的背景,选择 “Properties”项,在弹出的对话框中修改此对话框ID为:IDD_EG6_1_DIALOG”,标题为:“对话框示例”。 对话框实例 (续) 步骤4.当对话框资源完成以后,选择View|ClassWizard,打开 ClassWizard。发现已经有一个类CEg6_1Dlg与新的对话框相联系。 如果没有与对话框资源相对应的对话框类,可以使用ClassWizard创建一个新类 。 6.3 通用对话框 Windows操作系统提供了通用对话框,MFC也提供了相应的类,用来操作这些通用对话框。这个类就是CCommonDialog类。 6.3.1 通用对话框 与文件对话框相对应的类是CFileDialog类。 函数原型如下: CFileDialog( BOOL b OpenFileDialog, LPCTSTR lpszDefExt=NULL, //为用户指定一个缺省的扩展名 LPCTSTR lpszFileName= NULL, //指定对话框中出现的初始文档名 DWORD dwFlags=OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, //设置不同的标志来规范对话框的行为 LPCTSTR lpszFilter=NULL, // 允许用户指定过滤器来选择在文档列表中出现过的文档 CWnd*pParentWnd=NULL //指向父对话框的指针 ); 在构造了CF
您可能关注的文档
- Visual Basic程序设计简明教程 王晓东 第7章新.ppt
- Visual Basic程序设计简明教程 王晓东 第9章新.ppt
- Visual Basic程序设计简明教程 王晓东 第10章新.ppt
- Visual Basic程序设计教程(第二版) 郭清溥 1新.ppt
- Visual Basic程序设计教程(第二版) 郭清溥 2新.ppt
- Visual Basic程序设计教程(第二版) 郭清溥 3新.ppt
- Visual Basic程序设计教程(第二版) 郭清溥 4新.ppt
- Visual Basic程序设计教程(第二版) 郭清溥 5新.ppt
- Visual Basic程序设计教程(第二版) 郭清溥 6新.ppt
- Visual Basic程序设计教程(第二版) 郭清溥 8新.ppt
- Visual C++程序设计教程 梁建武 第7章新.ppt
- Visual C++程序设计教程 梁建武 第8章新.ppt
- Visual C++程序设计教程 梁建武 第9章新.ppt
- Visual C++程序设计教程 梁建武 第13章新.ppt
- Visual FoxPro 6.0程序设计 第1章 Visual FoxPro 6.0基础新.ppt
- Visual FoxPro 6.0程序设计 第2章 数据库基础知识新.ppt
- Visual FoxPro 6.0程序设计 第2章新.ppt
- Visual FoxPro 6.0程序设计 第3章新.ppt
- Visual FoxPro 6.0程序设计 第4章 使用视图查询和修改新.ppt
- Visual FoxPro 6.0程序设计 第5章新.ppt
文档评论(0)