欢迎来到天天文库
浏览记录
ID:47115022
大小:6.33 MB
页数:34页
时间:2019-08-06
《VC++60入门【第六章 创建和使用对话框】》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、第6章创建和使用对话框第6章创建和使用对话框精讲对话框是一种用户界面,几乎每一个Windows程序都使用对话框与用户进行交互。对话框可能是一个简单的只含有OK按钮的消息框,也可以是一个复杂的数据输入表单。对话框上有一些方便用户输入的控件,对话框依靠这些控件与用户进行交互,其实质是一个接收消息的窗口。在本章节我们主要讲述模式对话框和无模式对话框的原理和使用方法,下一章将详细介绍各种控件的使用。你将学习创建一个对话框,使用对话框模板编辑一个对话框资源,并在程序中调用对话框的方法。6.1对话框的基本原理6.1.1对话框的工作原理在创建一个对话框之前,我们先来了解一下对话框是如何工
2、作的,对话框的数据来自三方面:对话框资源、对话框对象、和一个文档对象:1.对话框资源对话框资源是一个用户输入或取得数据的图形界面。这个图形界面是使用DevelopStudio的对话框编辑器在对话框模板上创建的,程序员可以在对话框模板上增加并编辑控件,生成对话框资源。当应用程序运行时,就可以得到一个对话框。2.对话框对象MFC使用CDialog类来描述对话框,它是CWnd类的派生类。在CWnd类的基础上增加了数据交换的功能。当创建一个新的对话框资源后,使用ClassWizard可以创建一个对话框类的派生类。对话框对象实现了对话框和应用程序之间的通信。在应用程序中定义一个对话框
3、对象后,在对话框显示前,可以通过访问对话框对象的成员变量为一个对话框的控件初始化,在对话框关闭后,可以通过访问对话框对象的成员变量获得用户的输入数据。3.文档对象MFC使用文档对象描述应用程序处理的数据,用户输入的数据要进一步的处理,通常要先存贮到文档对象中。例如:一个学生记录处理的应用程序,用户通过一个对话框输入学生记录并贮存到一个文件中。应用程序的处理顺序是:用户在对话框中输入信息,通过对话框对象得到输入信息,将输入信息整理到文档对象中,使用序列化函数将文档对象存贮到一个文件中,所以文档对象扮演了一个很重要的数据交换的角色。MFC使用以上三者实现用户与应用程序之间数据交
4、换,数据交换流程见图6-1所示,遵循四个步骤。33第6章创建和使用对话框Public:datamemberdocumentxxxxxxxxxxxxxxxxxxxxxxxxxxxx创建对话框模板 1数据交换和验证 2定义对话框类和 3公有成员变量 运行对话框,修改 4 文档对象图6-1 对话框基本原理6.1.2对话框的类型对话框分为模式对话框和无模式对话框两种。当一个模式对话框打开了,在其关闭之前,用户不能转向其它用户界面对象,只能与该对话框进行交互。我们平时接触到的对话框,大多数都是模式对话框,例如,一个执行菜单命令File->Save后,Save对话框被打开后,用户不能再
5、做其它工作,只能保存完文件或取消保存文件,关闭对话框窗口后,才能做其它工作。无模式对话框恰恰相反,当用户打开一个无模式对话框,对话框停留在屏幕上,仍然允许用户与其它用户界面对象进行交互。无模式对话框最典型的例子是在Word中使用的查找与替换对话框,打开该对话框后,可以交替地进行文档编辑,和查找替换操作。从第一节的介绍可以看到对话框的设计任务主要包括对话框资源模板的设计,对话框类的设计和对话框的运行,绝大多数对话框的创建任务,模式对话框和无模式对话框都是相同的,只有在对话框与应用程序代码的交互中,也就是对话框的运行中,两者有明显的区别。6.2设计对话框资源6.2.1创建对话框
6、使用AppWizard生成的单文档或多文档应用程序,只有一个默认的About对话框,用于显示应用程序版本信息。需要使用对话框模板创建自己的对话框资源。DevelopStudio提供的对话框模板创建了一个基本界面,包括一个OK(确定)按钮和一个Cancel(取消)按钮等。你可以移动、修改、删除这些控件,或者是增加新的控件到对话框模板,构成应用程序所需的对话框资源。创建一个对话框资源到工程的步骤:(1)使用AppWizard生成一个单文档的MFC应用程序Exam6_1。(2)选择Insert->Resource菜单命令。(3)在弹出的InsertResource对话框左边的列表
7、中选择Dialog,单击New按钮。33第6章创建和使用对话框(1)在项目工作区中选择ResourceView面板,展开Dialog文件夹,可以看到增加了一个对话框资源IDD_DIALOG1,如图6-2所示,双击IDD_DIALOG1,在编辑区出现一个对话框模板。控件工具栏对话框模板对话框资源ID图6-2Exam6_1对话框设计_新建对话框资源6.2.2增加控件一个控件是能够放置在一个对话框中,提供应用程序与用户交互的某种功能。例如,EditBox提供用户文本输入的场所,一组RadioButton提供用户对某一主题
此文档下载收益归作者所有