创建和使用对话框框.PPT

创建和使用对话框框

第6章 创建和使用对话框框 6.1 对话框的基本原理 对话框(Dialog)实际上是一个窗口.在MFC中,对话框的功能被封装在了CDialog类中,CDialog类是CWnd类的派生类. 对话框分为模态对话框和非模态对话框两种.当一个模态对话框打开时,用户只能与该对话框进行交互,而其它用户界面对象收不到输入信息. 6.1 对话框的基本原理 从MFC编程的角度来看,一个对话框由两部分组成: 对话框模板资源.对话框模板用于指定对话框的控件及其分布,Windows根据对话框模板来创建并显示对话框. 对话框类.对话框类用来实现对话框的功能,由于对话框行使的功能各不相同,因此一般需要从CDialog类派生一个新类,以完成特定的功能. 对话框类型 1.模式对话框 不允许用户在关闭对话框之前切换到应用程序的其他窗口 2.无模式对话框 允许用户在该对话框与应用程序其他窗口之间的切换 创建和使用对话框的过程 设计对话框资源 设计对话框类 调用对话框 6.2 设计对话框资源 创建对话框 增加控件 设置控件属性 组织和安排控件 测试对话框 6.2 设计对话框资源 创建对话框步骤: 1.使用AppWizard生成一个单文档应用程序Exam6_1。 2.选择Insert|Resource菜单项 3.在弹出的对话框中选择Dialog,单击New按钮。 4.在项目工作区中展开DIalog资源。 6.2 设计对话框资源 增加控件 控件能够放置在一个对话框中,提供应用程序与用户的交互,使用控件工具栏。 设置控件属性 一个控件的相关属性设置决定了一个控件的可操作行为和显示效果,例如设置控件的ID,Caption等属性。 设置控件属性 ID属性。用于指定控件的标识符,Windows依靠ID来区分不同的控件。 Caption(标题)属性。静态正文、组框、按钮、检查框、单选按钮等控件可以显示标题,用来对控件进行文字说明。 Visible属性。用来指定控件是否是可见的。 Disable属性。使控件允许或禁止,一个禁止的控件呈灰色显示,不能接收任何输入。 6.2 设计对话框资源 组织和安排控件 Align:提供了6种控件对齐方式。左、右、上、下、水平、垂直。 Space Evenly:2种等间距方式,垂直和居中。 Make Same Size:3种等尺寸方式,宽相等,高相等,宽高都相等。 Center in Dialog:2种居中方式,水平和垂直。 6.3 设计对话框类 创建对话框类 创建对话框成员变量 values controls 对话框数据交换和校验(DDX和DDV) 创建对话框类 ClassWizard 创建对话框成员变量 对话框需要有一组成员变量来存储数,存储数据的成员变量应该与控件相对应。 ClassWizard|Member Variables 成员变量的类型 values controls 例如,可以为一个编辑框控件指定一个数据变量,这样就可以很方便地取得或设置编辑框控件所代表的数据,如果想对编辑框控件进行控制,则应该为编辑框指定一个CEdit对象,通过CEdit对象,程序员可以控制控件的行为 。 对话框的初始化 对话框的初始化工作一般在构造函数和OnInitDialog函数中完成。 在构造函数中的初始化主要是针对对话框的数据成员。 对话框数据交换和校验 DDX 对话框对象成员与控件之间的数据交换 DDV 数据有效性验证 Dialog data exchange 对话框的数据成员变量存储了与控件相对应的数据。数据变量需要和控件交换数据,以完成输入或输出功能。 例如,一个编辑框即可以用来输入,也可以用来输出:用作输入时,用户在其中输入了字符后,对应的数据成员应该更新;用作输出时,应及时刷新编辑框的内容以反映相应数据成员的变化。 对话框需要一种机制来实现这种数据交换功能 。 UpdateData函数 UpdateData(false) 将对话框对象的数据成员值传送到控件 UpdateData(true) 将控件中的值传送到对话框对象相应的数据成员 调用模式对话框 创建一个对话框对象 初始化对话框 调用CDialog::DoModal函数打开对话框 确定返回的处理 调用无模式对话框 无模式对话框的设计与模式对话框基本类似,也包括设计对话框模板和设计CDialog类的派生类两部分。 但是,在对话框的创建和删除过程中,非模态对话框与模态对话框相比有下列不同之处: 调用无模式对话框 1.Visible属性 无模式对话框的模板必须具有Visible风格,否则对话框将不可见,而模式对话框则无需设置该项风格。更保险的办法是调用CWnd::ShowWindow(SW_SHOW)来显示对话框,而不

文档评论(0)

1亿VIP精品文档

相关文档