欢迎来到天天文库
浏览记录
ID:57401810
大小:459.00 KB
页数:21页
时间:2020-08-15
《界面编程3对话框.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章界面编程3-对话框对话框(dialogbox)是GUI的常用部件,也是其最复杂的部件,是一种包含若干控件(control)的简单窗口。对话框主要用于接收用户的各种输入和选择,也可用于向用户显示信息,还能够响应用户对其控件的各种操作。本章先给出对话框的基本描述、若干种分类和MFC中对话框的类层次结构,然后介绍基本信息型用户对话框的创建和使用步骤,重点讨论MFC为对话框提供的DDX和DDV功能,最后简单介绍公用对话框的概念及若干常用公用对话框的使用方法。操作型用户对话框的创建和使用,及若干常用控件的功能、属性和使用等,将在下一章“第6章控件”中再予以介绍。5.1
2、对话框基础对话框是一种包含若干控件、具有灰色背景的简单窗口,可以从不同的视角(如工作方式、编程方法、提供功能)来对对话框进行分类,MFC中的各种对话框类都有一个共同的基类CDialog。5.1.1对话框对话框(dialogbox)是一种简单的框架窗口,只有标题条和边框,没有菜单条、工具条和状态条等,一般包含确定(OK)和取消(Cancel)按钮。对话框窗口的背景一般为浅灰色,上面排列着一些控件,供用户查看、输入和选择,也可响应用户操作来完成特定任务。常见控件有文本框、编辑框、列表框、组合框、按钮、单选钮和复选框等。对话框是GUI应用程序获取用户信息的主要接口,也是
3、Windows界面编程中最麻烦且最耗时的部分。程序员的辛苦换来的是,直观、方便、友好、完善的参数输入的用户界面。在例子程序Student的菜单项响应中,用MessageBox函数弹出的消息框,就是一种最简单的对话框,用来向用户显示提示信息,参见图5-1a)。本章后面要设计和实现的“输入学生信息”对话框,则是一个基本的自定义对话框,用于接受用户的输入,参见图5-1b)。图5-1c)是在第8章的GDI交互绘图作业中,可能出现的一个设置绘图参数对话框,通过用户的选择来获取各种绘图参数。另外,大家在各种应用软件中经常使用的打开和保存文件、选择颜色和字体、打印文档(包括页面
4、设置、打印预览和打印)等对话框,都是典型的公用对话框。a)显示信息b)接受输入c)获取选择图5-1对话框例5.1.2对话框的分类为了方便讨论和使用,可以将对话框按工作方式、编程方法和提供功能等进行分类,包括模式与无模式对话框、公用与用户对话框、信息型与操作型对话框,常用的是信息型模式用户对话框。1.模式对话框与无模式对话框按工作方式不同,可将对话框分成两类:l模式对话框(modaldialogbox,也称模态对话框):在关闭模式对话框之前,该程序不能进行其他工作(如“打开文件”对话框)。l无模式对话框(modelessdialogbox,也称非模态对话框):模式对
5、话框打开后,该程序仍然能够进行其他工作(如“查找与替换”对话框)。是否关闭前可进行其它操作?对话框模式对话框无模式对话框图5-1按工作方式的对话框分类对话框是模式的还是无模式的与资源无关,即同一对话框资源,即可以按模式对话框来显示和使用,也可以按无模式对话框来显示和使用。2.公用对话框与用户对话框按编程方法不同,还可将Windows对话框分成两类:l公用对话框(commondialogboxes,通用/公共对话框):Windows提供的一组标准用户接口对话框,包括文件、颜色、字体、查找替换、页面设置、打印等对话框。公用对话框的资源与处理代码被封装在动态连接库文件c
6、omdlg32.dll中,该文件一般放在Windows系统安装目录下的system32子目录中,可供所有的Win32应用程序调用。MFC更是将Windows提供的各种公用对话框资源及相关处理代码封装在对应名称的C++类中,常用的公用对话框类有CFileDialog、CColorDialog、CFontDialog、CFindReplaceDialog、CPageSetupDialog和CPrintDialog等。l用户对话框(userdialogbox):用户自己创建的对话框,对话框的资源与处理代码都由程序员自己来编写。自己创建系统提供资源对话框共用对话框用户对话
7、框对话框操作响应输入选择提供功能信息型对话框操作型对话框图5-2按编程方法的对话框分类图5-3按提供功能的对话框分类3.信息型对话框与操作型对话框还可以按所提供功能的不同,将对话框分成如下两种类型:l信息型:主要用于接受用户的输入和选择,需要自己创建对话框类和添加控件变量,并可利用MFC的对话框自动数据交换(DDX=DialogDataExchange,对话框数据交换)功能,通过控件变量来快速获取用户信息。这是最常见的一种用户对话框类型,用于普通的应用程序。l操作型:主要用于响应用户的操作,不需要添加控件变量,一般也不能利用DDX功能,需要自己进行对话框数据的初始
8、化设置和当
此文档下载收益归作者所有