第14章对话框a.pptVIP

  • 3
  • 0
  • 约 34页
  • 2016-08-21 发布于重庆
  • 举报
第14章对话框a

第十四章 对话框 教学目标 介绍对话框的概念和用法 学习要求 理解对话框(模式/非模式) 掌握公用对话框使用 掌握自定义对话框 理解控件的概念、数据交换和验证机制 掌握对话框资源的编辑 掌握对话框类的编写 掌握在CView中使用对话框类 授课内容 对话框是一种特殊的窗口 主要功能是输出信息和接收用户的输入 对话框与控件是密不可分的 在每个对话框内一般都有一些控件 对话框依靠这些控件与用户进行交流信息 14.1 对话框(Dialog) 对话框(Dialog)实际上也是一个窗口 类型:模态对话框和非模态对话框 File/Open命令打开的文件搜索对话框就是模态对话框 Microsoft Word中的搜索对话框 使用模态对话框有两个步骤 1.在视图类或框架窗口类的消息响应函数(如鼠标消息或菜单选项的命令消息响应函数)中说明一个对话框类的对象(变量); 2.调用CDialog::DoModal()成员函数。 根据DoModal()函数的返回值是IDOK还是IDCANCEL来判断用户是确定还是取消了对对话框的操作 对话框由两部分组成 1.对话框模板资源:对话框模板用于指定对话框的形状、所用控件及其分布,Developer Studio根据对话框模板来创建对话框对象。 2.对话框类:对话框类用来实现对话框的功能。由于各应用程序中的对话框具体功能不同,因此一般要从CDialog类中派生一个新类,以便添加特定的数据成员和成员函数。 对话框的设计 对话框模板的设计 对话框类的设计 对话框的设计(具体) 编辑资源(用资源编辑器Resource View) 1.向项目中添加对话框模板资源; 2.编辑对话框模板资源,加入所需的控件 编写对话框类(用ClassWizard) 3.从CDialog类派生对话框类,加入与各控件对应的数据成员; 在Cview中使用 4.在框架窗口类或视图类的菜单选项、鼠标事件或其他消息响应函数中添加对话框对象的应用代码。 注意:要记得#include “…” 对话框类的头文件! 对话框类的设计方法 1.从CDialog类派生一个对话框类,并通过对话框模板资源的ID建立它们之间的对应关系;(这一步会自动完成!) 2.为对话框类添加与各控件相对应的成员变量; (小心类型!!) 3.为对话框进行初始化工作; 4.增加对控件通知消息的处理。 [例14-1] 为例9-1的吹泡泡程序加一版权(About)对话框。 14.2 控件 控件:一个现成的程序组件,可以独立运行以完成一定的功能 ; 控件都是CWnd类派生出来的后代类对象 每个控件均有一个标识符(ID) 静态文本控件 静态文本控件是最简单的控件; 用途是在对话框上显示一段文字; 静态文本控件的文字和属性均在编辑对话框模板资源时确定,程序运行中一般无法改变,在编程时无需考虑静态文本控件。 它的ID并不重要,因为无需编程 编辑控件 编辑控件是最有用的控件,其功能十分全面,本身就是一个小型的文本编辑器。 编辑控件的作用是接受用户输入的字符串信息。 它的ID很重要,因为要实现数据交换 14.3 对话框的初始化 对话框的初始化工作一般在构造函数和CDialog::OnInitDialog ()函数中完成 ; 在对话框创建时,会收到WM_INITDIALOG消息,对话框对该消息的处理函数是OnInitDialog() 用ClassWizard重载此函数,如果必要。 14.4 对话框数据交换和数据检验机制 通过控件与用户的数据交流是分两步完成的 ; 在调用对话框类的DoModal()函数打开对话框之前,可以通过设置对话框数据成员的值,使其成为控件窗口的显示信息 ; 在退出对话框后,又可将对话框数据成员所反映的用户输入数据应用到程序的其他部分。 控件 数据成员 对话框类的数据成员通常被说明为public CDialog::DoDataExchange 数据交换和检验机制通过CDialog::DoDataExchange()函数来完成,其原型为: virtual void DoDataExchange ( CDataExchange* pDX ); 数据检验,即对用户输入数据的范围进行检查,如果不符合要求则拒绝接受。 数据交换和检验机制不仅适用于编辑框控件,还适用于检查框、单选按钮、列表框和组合框等控件。 理解概念。代码已自动生成,无需改动!!! 模态对话框编程步骤总结 使用对话框编辑器建立对话框模板资源并加入所需的控件。 使用ClassWizard建立相应的对话框类,该类从CDialog继承并且和步骤1所建立的对话框模板资源相关联。 使用ClassWizard给对话框类添加数据成员,添加控件和数据成员的数据交换功能以及数

文档评论(0)

1亿VIP精品文档

相关文档