




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第10章 对话框,对话框在基于窗口的应用程序中扮演着非常重要的角色,是应用程序开发中最常用的功能,有着不可替代的作用。它一般是用作诸如编辑控件、列表框、组合框和按钮之类的Windows控件的载体。其功能正式通过它承载的各种控件,来接收用户的输入以及显示信息。,10.1 控件,Windows系统提供了大量的Windows基本控件,这些控件都是可编程的,可以通过Visual C+开发环境的资源编辑器将它们加入对话框这个大容器里,实现数据交互的可视化界面,从而丰富了数据输入的手段。,10.1.1 常用控件介绍,MFC提供的用于封装控件及其功能的类是由CWnd类派生出来的类,也就是说控件也是一个窗口,
2、是显示在父窗口中的子窗口,例如它可以作为对话框、视类窗口、工具栏和状态栏的子窗口而创建的。在对话框中常用的控件如图10.1所示。,10.1.2 控件的创建,创建一个控件有两种类型,一种是静态控件,创建静态控件时必须利用对话框资源编辑器将控件包括在对话框内,当对话框资源被加载时,所包含的控件也随之被创建。这种方式在10.2节对话框的创建中将详细阐述。,10.1.3 控件的消息,在第7章曾经简述过控件通知消息,知道了当用户与控件交互时,这一类消息就从控件或者其他类型的子窗口发送到父窗口。它通知父窗口,该控件接收到某种操作,从而使父窗口进一步控制子窗口提供了条件。也就是说,父窗口可以向控件发送消息,
3、同时控件也可以向父窗口发送消息。 1控件向父窗口发送消息 2父窗口向控件发送消息,10.2 对话框的创建,对话框实际上就是一个窗口,它不仅可以接收消息,而且可以移动和关闭,甚至可以在其客户区进行图形的绘制和显示。MFC提供了一系列封装了对话框的类,主要包括CDialog类、CCommonDailog类及CFileDialog等。其相关类的层次结构可以参照MSDN。,10.2.1 模态对话框的创建,首先利用MFC AppWizard(exe)创建一个名为Dialog的应用程序,该程序基于单文档类型。然后利用资源编译器来进行对话框的创建。,10.2.2 非模态对话框的创建,在学习控件时,知道了动态
4、控件是通过调用控件类的成员函数Create()来实现的。对于非模态对话框,同样要通过调用对话框类的的成员函数Create()来实现。,10.3 对话框数据交换和验证,对话框的一大功能就是和用户进行信息交互,本节就是要了解如何从对话框中获取数据,并赋给应用程序相应的变量,以及如何把程序中的变量赋给对话框中相应的控件。对话框数据交换,英文全称是Dialog Data Exchange,简称DDX,它用来在对话框类中创建变量,并与对话框上的控件关联。对话框数据验证,简称DDV,它主要用来设定变量的合理范围。如果用户在控件上键入超出合理范围的数字,那么就会弹出一个用于解释输入错误的对话框。,10.3.
5、1 数据交换,DDX控件变量可以将控件类与对话框中相应的控件关联,例如DDX可以把对话框类的一个成员变量与对话框上的一个编辑框关联起来,从而可由CEdit类的成员函数管理这个编辑框。DDX变量通过类向导就可以创建,选择【Member Variables】选项卡,在控件ID选项中选择需要创建变量的控件,如图10.13所示。选择IDC_EDT_WIDTH控件,然后单击【Add Variable.】按钮,弹出【Add Member Variable】对话框,如图10.14所示。输入变量名称m_lineWidth,并选择该变量所需要的种类为Value,类型为UNIT。,10.3.2 数据验证,在DoD
6、ataExchange()函数的定义中,除了为控件添加变量来进行数据的交换外,还指定了允许输入的最大字符数,因此,当m_bSaveAndValidate为真时,还要调用DDV_MaxChars()来进行输入数据的验证。,10.3.3 创建一个图形显示实例,该实例是通过选择线宽、线型及颜色来对简单图形进行显示,其中简单图形有直线、矩形、椭圆三种。当选择线宽、线型或者简单图形后,在图形显示对话框上就会立即显示当前选择的改变。该实例还添加了一个按钮控件来显示颜色对话框,通过选择新的颜色来实时改变图形的颜色。,10.4 树形视图和列表视图控件,树形视图和列表视图控件主要用来显示和管理数据列,其中树形视
7、图控件用于显示项的层次结构列表,例如文件夹的目录结构,而列表视图提供了多种方式来排列并显示项目列表。尽管树形视图和列表视图控件具有完全不同的功能,但两者经常一起用来为一个应用程序的数据提供不同的视肌Windows资源管理器就是一个典型的例子。,10.4.1 树形视图控件,树形视图控件用于在一个层次列表中显示数据。每一个表项显示一个标题,还可以显示一副图像来形象地描述数据。树视图和列表视图控件都使用了图像列表控件,利用图像列表控件来包容图像,并组成一个列表,从而可视地代表各种控件各自的数据项。 1创建树形视图控件 2插入一个新选项 3查询或设置选项 4有关树形视图控件的消息,10.4.2 列表视
8、图控件,列表视图控件如图10.19所示,其右侧就是一个带有标题行的列表视图;在可视界面上,列表视图控件类似于用于显示成组的项的列表框控件,但功能大不一样,例如列表视图控件可以在最顶层显示一列标题行,而标准的列表框不可以。其实这一列标题行就是Windows的一个常用控件,即标题控件。有了标题控件,用户就可以根据自己的需要对列表视图中的列进行重新排序。 1创建列表视图控件 2插入一个新选项 3插入一个列 4设置列表视图的图像列表,10.4.3 创建一个通讯录实例,该实例是通过树形视图控件和列表视图控件建立一个通讯录,在树形视图中显示联系人的姓名,其中有三个根项表示三种联系人的类型,分别为同学、朋友
9、、同事。在列表视图中显示当前选定的联系人的电话、职业及联系地址。该实例还通过图像列表为树形视图控件中的选项关联了两种图像,当某一选项被选择时其图像为加亮的图像,当选项失去焦点时其图像为灰暗的图像。,10.5 属性表单和向导的创建,在基于Windows系统的应用中,经常看到选项卡对话框,也就是属性表单,其中选项卡也就是属性页。属性表单由带有一个或多个属性页组成,利用它,应用程序可以根据功能把不同的属性进行分组,并分别把每一组放在它自己的属性页上,从而有效地解决了大量信息无法在一个对话框中显示这一问题。10.22显示了Visual C+开发环境中的一个属性表的例子。,10.5.1 创建属性页,为了
10、创建属性表单,首先要创建属性页,MFC提供了一个封装了属性页的C+类CPropertyPage,该类是从CDialog派生出来的。因此一个属性页窗口就是一个对话框窗口。在资源编辑器中创建属性页类尽管似于创建对话框资源,但还是有一些区别。例如属性页的Caption属性值出现在选项卡上而不是出现在对话框的标题栏上,属性页的Style属性需要设置为Child,Border属性则需要被设置为Thin,而且属性页的Disable复选框需要被选中。,10.5.2 创建属性表单,为了创建一个属性表单,首先需要创建一个CPropertySheet对象。选择【Insert】|【New Class.】菜单,弹出【
11、New Class】对话框。在此对话框里将新类命名为CPropSheet,并选择其基类为CPropertySheet。,10.5.3 创建向导,向导其实是属性表单的另一种表现形式,最常见的就是在应用软件的安装过程中,通过“下一步”或“完成”,“上一步”和“取消”按钮来进行导航。其实现过程和创建标准属性表单的过程一样,唯一要注意的是,在创建一个向导类型的属性表单时,必须在调用属性表单类的DoModal()函数之前,调用该属性表单类的SetWizardMode()函数来设置属性表单为向导模式。,10.5.4 创建一个可动态添加记录的通讯录,本实例是在原来的AddressList应用程序基础上,实现动态添加记录。也就是利用向导可多次向通讯录中添加新的记录,当然由于该实例没有应用数据库技术,不能永久存储数据。因此,添加的新记录,其生命周期等同于通讯录对话框的生命周期。,10.6 小结,本章首先介绍了Windows系统
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 西安航空基地管理办法
- 西安动态流动管理办法
- 福建苗圃育苗管理办法
- 造船产值计算管理办法
- 股静脉护理课件
- 肠道与健康课件
- 医院人员管理培训课件
- 肠内营养课件
- 肝硬化腹水护理课件
- 高职分招数学试卷
- 设备安装施工方案完整版
- 火针疗法在皮肤病治疗中的应用
- 基于PLC的智能车库门系统设计
- 【2023有效教学设计原理、策略与评价读书报告3600字】
- 顶管专项施工方案-人工顶管
- SYNTEC参数说明手册
- 2023春国家开放大学-01880组织行为学-期末考试题带答案
- 2012年度天津市科学技术奖评审结果
- 2022年台州椒江区辅助警务人员招聘考试真题及答案
- 第二讲土地估价技术报告难点及技术要求与处理办法
- 房屋维修施工方案
评论
0/150
提交评论