4 对话框及常用控件 (第四章 对话框和常用控件)
- 格式:doc
- 大小:21.00 KB
- 文档页数:2
第4章对话框和常用控件对话框是Windows应用程序中最重要的用户界面元素之一,是与用户交互的重要手段,在程序运行过程中,对话框可用于扑捉用户的输入信息或数据。
对话框是一个特殊类型的窗口,任何对窗口进行的操作(如:移动、最大化、最小化等)都可在对话框中实施,一般来说,在对话框中通过各种控件(如:按钮、编辑框、列表框、组合框等)来和用户进行交互。
控件是在系统内部定义的用于和用户交互的基本单元。
4.1对话框的使用Visual C++提供的对话框编辑器能“可视”地进行设计、编辑,并可用ClassWizard为对话框从CDialog基类中派生一个类,MFC的CDialog类封装了用于对话框的显示、关闭等操作的许多功能函数,例如:DoModal函数用来显示模式对话框并返回用户操作的结果。
在Visual C++6.0应用程序中,使用一个对话框的一般过程是:(1)添加对话框资源;(2)设置对话框的属性;(3)添加和布局控件;(4)创建对话框类;(5)添加对话框代码;(6)在程序中调用对话框。
例如:例1:模式对话框(为175页附加举例)所谓模式对话框是指,当对话被弹出时,用户必须在对话框中进行相应的操作,在退出对话框之前,对话框所在的应用程序不能继续执行。
平常我们所见到的对话框大多是模式对话框。
例:模式对话框(通过菜单命令弹出)1)建一个单文档(SDI)应用程序2)创建对话框模板Insert→Resource→选中Dialog→单击New拖过一个静态文本,鼠标对准它,按右键点properties改标题为“新建模式对话框”。
3)鼠标右键对准对话框的任何位置单击,选择properties选项,设置ID为IDD_MYDIALOG 4)给对话框创建类双击新建对话框的任何位置,单击OK,写类名为“CMyDlg”,保证”CDialog”作为该类的基类。
5)创建菜单命令:a)打开资源编辑器的菜单项Menub)双击IDR_MAINFRAMEc)双击右边空白菜单,点开pop_up(让它是空白),在名字处写”弹出对话框(&A)”,ID 处写ID_PUPDIALOG6)将菜单命令连接到主框架程序中,完成ID_PUPDIALOG的消息映射:View→ClassWizard→保证Class name里是CMainFrame,在ObjectIDs里找到ID_PUPDIALOG点黑→Messages里(右边)点COMMAND建立主框架对象方法并加代码:void CMainFrame::OnPupdialog(){ CMyDlg MyDlg;MyDlg.DoModal(); //DoModal()是CDialog类成员函数,通过调用该//函数将显示对话框。
1.什么是对话框?它分为哪两类?这两类对话框有哪些不同?
答:对话框是一种特殊的窗口,主要功能是输出信息和接收用户的输入。
对话框分为有模式对话框和无模式对话框。
当一个有模式对话框打开时,用户只能与该对话框进行交互,而其他用户界面对象收不到输入信息。
而无模式对话框打开时,用户可以同时打开其他窗口对象,操作完毕后,又可用鼠标或其他方式激活该窗口。
2.什么是对话框模板、对话框资源和对话框类?
答:对话框模板是一个描述对话框的内存结构,用于添加控件及其布局。
对话框资源指快捷键、对话框、菜单、字符串、工具栏按钮、图表、版本信息等。
对话框类用于实现对话框功能。
3.对一个对话框编程一般经过几个步骤?
答:1. 在资源编辑器中画对话框,添加控件,设定控件位置、大小、ID和其它属性;
2. 定义对话框回调函数,添加控件的事件处理函数;
3. 注册对话框函数
4、什么是控件?根据控件的性质可以将控件分为几类?
答:在Windows中所用的按钮控件是用来实现一种开与关的输入。
常见按钮类型:按键按钮、单选按钮、复选框按钮。
5.向对话框添加一个常用控件的方法有哪些?这些方法是否使用于ActiveX控件?
答:1、先点击控件,然后在对话框上单击,
2、先点击控件,然后在对话框上点住不放,画出像要的大小。
否。
6.什么是DDV/DDX技术?如何使用这种技术?
答:DDX(对话框数据交换)机制用来初始化对话框中的数据,并向应用程序返回数据,它使得用户向对话框加载对象数据和当对话框关闭时恢复其中的数据这两个过程自动化。
DDV(对话框数据验证有效性)机制用于将数据返回成员变量之前将数据的长度和范围有效化。
7.什么是空间的通知消息?它在编程中起哪些作用?
答:控件消息由按钮(BN_)、编辑框(EN_)、组合框(CBN_)和列表框(LBN_)等产生。
控件通过向父窗口发送控件通知消息来表明发生了某种事件。
8.什么是按钮控件?它有几种类型?
答:按钮控件常用来接收用户的操作信息,激发相应的事件,按钮是用户与程序交互的最简便的方法。
它有下压按钮、单选按钮、复选框、用户自定义按钮。
按钮控件用来表示用户的选择。
它包括命令按钮、复选框和单选框。
9、什么是编辑框控件?它有哪些功能?
答:编辑框控件是一个简易的文本编辑器,用户可以在编辑框中输入并编辑文本。
编辑框控件可以自带滚动条,显示多行文本。
10、编辑框控件中的EM-CHANGE和EN-UPDATE通知消息有何异同?
答:两者都是编辑框控件的内容改变之后发送,不同的是EN_CHANGE是在编辑框显示的正文被刷新后才发出。
11、向某一个应用程序添加一个对话框,并在对话框中添加一个按钮和一个编辑框,当单击按钮后,在编辑框中显示“你好!”字样。
12、什么是列表框和组合框?它们的通知消息有何异同?
答:列表框是一个矩形窗口,在矩形窗口中可包含一系列的字符串,也可以包含其他的数据元素。
组合框把一个编辑框和一个单选择列表框结合在了一起,用户既可以在编辑框中输入,也可以从列表框中国选择一个列表项来完成输入。
13、在例[Ex-CommCtrls]的CListBoxDlg对话框中,如何使登记的成绩是4门课程,则对话框中的控件应如何添加?代码应如何修改?
14、什么是旋转按钮的“伙伴”控件?如何设置?
答:“伙伴”控件是和旋转按钮同存在的用来共同显示和控制某一值。
在对话框模板中,可以方便地为旋转按钮指定一个伙伴控件。
首先在旋转按钮的控件属性对话框中旋转Auto buddy和Set buddy integer属性,并在Alignment栏中旋转Left或Right,然后就可以确定伙伴控件了。
15、在MFC中,通用对话框有哪些?如何在程序中使用它们?
答:文件选择对话框、颜色选择对话框、字体选择对话框、打印和打印设置对话框以及正文查找和替代对话框。
16、如果消息对话框只有“是”和“否”两个按钮,则如何设置MessageBox函数的参数?
答:MessageBox(NULL,“显示的内容”,“标题”,MB_YESNO)。