文档详情

Visual C++程序设计教程 梁建武 第6章新.ppt

发布:2015-12-12约6.15千字共41页下载文档
文本预览下载声明
第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
显示全部
相似文档