第五章对话框及常用控件 本章导读 在 Windows,应用程序中,对话框( Dialog)是最重要 的用户界面元素之一,是应用程序与用户交互的重要 手段。当用户进行某项操作之后,弹出一个对话框把 反馈信息传递给用户,也可以要求用户输入数据或者 进行选择。 控件在 Windows应用程序中也很常见。一般来说, 在对话框中是通过各种控件来和用户进行交互的,我 门经常用到的控件有按钮、列表框、编辑框、组合框 滚动条等。实际上,控件是一种特殊类型的窗口,通 常为其父窗口所拥有。 U回
返回 1 第五章 对话框及常用控件 本章导读 在Windows应用程序中,对话框(Dialog)是最重要 的用户界面元素之一,是应用程序与用户交互的重要 手段。当用户进行某项操作之后,弹出一个对话框把 反馈信息传递给用户,也可以要求用户输入数据或者 进行选择。 控件在Windows应用程序中也很常见。一般来说, 在对话框中是通过各种控件来和用户进行交互的,我 们经常用到的控件有按钮、列表框、编辑框、组合框、 滚动条等。实际上,控件是一种特殊类型的窗口,通 常为其父窗口所拥有
5.1对话框的组成和分类 511对话框的组成 在 Visual c++中,对话框主要是由对话框资源和对话框 类组成 1.对话框资源 对话框资源中描述的是对话框的大小、风格等特性 以及对话框中控件的类型和它们的位置。定义对话框资 源最简单、最有效的方法就是使用 Visual c++中的资源编 辑器 2.对话框类 对话框资源所提供的仅仅是一个数据结构,要利用所 创建的对话框资源,必须要创建以它作为资源的对话框 类,对话框类是从 CDialog类中派生出的子类,它提供了 编程接口来管理对话框。 U回
返回 2 5.1 对话框的组成和分类 5.1.1 对话框的组成 在Visual C++中,对话框主要是由对话框资源和对话框 类组成: 1. 对话框资源 对话框资源中描述的是对话框的大小、风格等特性, 以及对话框中控件的类型和它们的位置。定义对话框资 源最简单、最有效的方法就是使用Visual C++中的资源编 辑器。 2. 对话框类 对话框资源所提供的仅仅是一个数据结构,要利用所 创建的对话框资源,必须要创建以它作为资源的对话框 类,对话框类是从CDialog类中派生出的子类,它提供了 编程接口来管理对话框
5.1对话框的组成和分类 52对话框的分类 对话框有两种类型:模式对话框和无模式对话框。下 面分别对这两种对话框进行说明。 1.模式对话框 所谓“模式对话框”是指对话框被弹出后,用户必须 在对话框中作出相应的操作;在退出对话框之前,会阻 止其他应用程序的运行(包括它所在的应用程序)。 般情况下,模式对话框会有【OK】(确定)和 Cancel】(取消)两个按钮。单击【OK】按钮,系统 认定用户在对话框中的选择或输入有效,退出对话框; 单击【 Cancel】按钮,系统认定用户在对话框中的选择或 输入无效,退出对话框,程序恢复原有状态。 U回
返回 3 5.1 对话框的组成和分类 5.1.2 对话框的分类 对话框有两种类型:模式对话框和无模式对话框。下 面分别对这两种对话框进行说明。 1. 模式对话框 所谓“模式对话框”是指对话框被弹出后,用户必须 在对话框中作出相应的操作;在退出对话框之前,会阻 止其他应用程序的运行(包括它所在的应用程序)。 一般情况下,模式对话框会有【OK】(确定)和 【Cancel】(取消)两个按钮。单击【OK】按钮,系统 认定用户在对话框中的选择或输入有效,退出对话框; 单击【Cancel】按钮,系统认定用户在对话框中的选择或 输入无效,退出对话框,程序恢复原有状态
5.1对话框的组成和分类 2.无模式对话框 所谓“无模式对话框”是指当对话框被弹岀后,将 直保留在屏幕上,但不影响其他应用程序的运行,用 户可以继续在对话框所在的应用程序中进行其他操作; 当需要使用对话框时,只需像激活一般窗口—样单击对 话框所在的区域即可。例如在 Microsoft word中的“查找 和“替换”对话框。 两种对话框在用资源编辑器设计和使用 Class wizard 进行编程时的方法基本一致。但在创建和退出窗口时的 方式有所不同。 U回
返回 4 5.1 对话框的组成和分类 2. 无模式对话框 所谓“无模式对话框”是指当对话框被弹出后,将 一直保留在屏幕上,但不影响其他应用程序的运行,用 户可以继续在对话框所在的应用程序中进行其他操作; 当需要使用对话框时,只需像激活一般窗口一样单击对 话框所在的区域即可。例如在Microsoft Word中的“查找” 和“替换”对话框。 两种对话框在用资源编辑器设计和使用Class Wizard 进行编程时的方法基本一致。但在创建和退出窗口时的 方式有所不同
5.1对话框的组成和分类 在创建时,模式对话框是由系统自动分配内存空间 因此在退出对话框时,对话框对象会自动删除。而 无模式对话框则是需要用户来指定内存,退出时还 需用户自己来删除对话框对象。 在退出时,两种对话框所使用的终止函数不一样。 模式对话框通过调用 CDialog: EndDialog来终止,而 无模式对话框则是通过调用CWnd: Destroy Window 来终止。 U回
返回 5 5.1 对话框的组成和分类 1. 在创建时,模式对话框是由系统自动分配内存空间, 因此在退出对话框时,对话框对象会自动删除。而 无模式对话框则是需要用户来指定内存,退出时还 需用户自己来删除对话框对象。 2. 在退出时,两种对话框所使用的终止函数不一样。 模式对话框通过调用CDialog::EndDialog来终止,而 无模式对话框则是通过调用CWnd::DestroyWindow 来终止
5.2创建模式对话框 52.1创建应用程序框架 在进行创建对话框之前,我们首先按照第四章介绍的 方法创建一个应用程序框架,并且在 Visual c+6.0中将 “工程”打开。 步骤一:在 Visual c++60中选择【Fle】莱单的【New】 菜单命令,弹出【new】对话框。在工程列表中选中选项 MFC App wizardlexe]】,在【 Project name】栏中输入 工程名称为【 Dialog】,在【 Location】栏中指定工程的存 储路径为E:C++ XAMPLE。单击【OK】按钮启动App Wizard 步骤二:在接下来的 App wizard的各个步骤中按下列要求 设置选项: U回
返回 6 5.2 创建模式对话框 5.2.1 创建应用程序框架 在进行创建对话框之前,我们首先按照第四章介绍的 方法创建一个应用程序框架,并且在Visual C++ 6.0中将 “工程”打开。 步骤一:在Visual C++ 6.0中选择【File】菜单的【New】 菜单命令,弹出【new】对话框。在工程列表中选中选项 【MFC AppWizard[exe]】,在【Project name】栏中输入 工程名称为【Dialog】,在【Location】栏中指定工程的存 储路径为E:\C++\EXAMPLE\。单击【OK】按钮启动App Wizard。 步骤二:在接下来的AppWizard的各个步骤中按下列要求 设置选项:
5.2创建模式对话框 Step 1:选择单文档界面( Single Document),其他接受 系统缺省设置,单击【Next】按钮,进入下一步。 Step2:接受系统缺省设置,单击 (Next】按钮 step3:关闭【 ActiveX controls】复选框选项,单击Next】 按钮,进入下一步。 step4:关闭【 Docking toolbar】、【 Initial status bar ( Printing and print preview】,以及【3 D Control】复选 框选项,单击【Next】按钮,进入下一步。 step5:接受系统缺省设置,单击【Next】按钮。 step6:接受系统缺嘗设置,单击【 Finish】按钮。 最后:弹出工程信息对话框,单击【OK】按钮,完成应 用程序框架的设计。 U回
返回 7 5.2 创建模式对话框 Step 1:选择单文档界面(Single Document),其他接受 系统缺省设置,单击【Next】按钮,进入下一步。 Step 2:接受系统缺省设置,单击【Next】按钮 Step 3:关闭【ActiveX Controls】复选框选项,单击Next】 按钮,进入下一步。 Step 4: 关闭【Docking toolbar】、【Initial status bar】、 【Printing and print preview】,以及【3D Control】复选 框选项,单击【Next】按钮,进入下一步。 Step 5:接受系统缺省设置,单击【Next】按钮。 Step 6:接受系统缺省设置,单击【Finish】按钮。 最后:弹出工程信息对话框,单击【OK】按钮,完成应 用程序框架的设计
5.2创建模式对话框 522创建对话框资源 接下来,我们要做的工作是创建对话框资源,其创建 步骤如下 步骤一:在打开的工程中,选择【 Insert】菜单中的 Resource】菜单项,或直接按Ctl+R键,系统将弹出 Insert resource】对话框 步骤二:在对话框中选择【 Dialog】选项,然后单击 New】按钮,或直接双击【 Dialog选项,这时对话框 资源编辑器将显示在Ⅴ isual c艹平台中,在对话框资源编 辑器中显示了—个只有【OK】按钮和【 Cancel】按钮的 简单的对话框 U回
返回 8 5.2 创建模式对话框 5.2.2 创建对话框资源 接下来,我们要做的工作是创建对话框资源,其创建 步骤如下: 步骤一:在打开的工程中,选择【Insert】菜单中的 【Resource】菜单项,或直接按Ctrl+R键,系统将弹出 【Insert Resource】对话框 步骤二:在对话框中选择 【Dialog】选项,然后单击 【New】按钮,或直接双击【Dialog】选项,这时对话框 资源编辑器将显示在Visual C++平台中,在对话框资源编 辑器中显示了一个只有【OK】按钮和【Cancel】按钮的 简单的对话框
5.2创建模式对话框 在新建对话框的同时,在其右边随之出现了一个控件 模板,即 Controls工具栏,它的作用是向对话框资源中添 加控件。工具栏中的每一个图标(除了左上角的指针) 都代表种能够添加到对话框中的控件,我们可以用 种“所见即所得”的方式来向对话框资源添加各种控件。 如果仔细观察一下系统的菜单,你就会发现菜单中多 了一项【 ayout】菜单,而且在状态拦的上面增加了一个 新的工具栏——【 Dialog】工具栏,其中的按钮在编辑对 话框资源和增加控件时是十分有用的工具。下面我们对 Dialog】工具栏进行详细的说明。 U回
返回 9 5.2 创建模式对话框 在新建对话框的同时,在其右边随之出现了一个控件 模板,即Controls工具栏,它的作用是向对话框资源中添 加控件。工具栏中的每一个图标(除了左上角的指针) 都代表一种能够添加到对话框中的控件,我们可以用一 种“所见即所得”的方式来向对话框资源添加各种控件。 如果仔细观察一下系统的菜单,你就会发现菜单中多 了一项【Layout】菜单,而且在状态拦的上面增加了一个 新的工具栏——【Dialog】工具栏,其中的按钮在编辑对 话框资源和增加控件时是十分有用的工具。下面我们对 【Dialog】工具栏进行详细的说明
5.2创建模式对话框 1.Test:单独运行对话框来测试对话框的外观和行为; 2. Align Left:将选定的多个控件按照左对齐的格式放置; 3. lign Right:将选定的多个控件按照右对齐的格式放置 4. AlignηTop:将选定的多个控件按照上对齐的格式放置 5. Align Botton:将选定的多个控件按照下对齐格式放置 6. Central vertical:将选定的一个或多个控件按照中心垂 直对齐格式放置 7. Central horizontal:将选定的一个或多个控件按照中心 水平对齐格式放置 8. Space Across:将选定的多个控件两两之间的水平间隔 相同 U回
返回 10 5.2 创建模式对话框 1. Test:单独运行对话框来测试对话框的外观和行为; 2. Align Left :将选定的多个控件按照左对齐的格式放置; 3. lign Right:将选定的多个控件按照右对齐的格式放置 4. Align Top:将选定的多个控件按照上对齐的格式放置 5. Align Botton:将选定的多个控件按照下对齐格式放置 6. Central Vertical:将选定的一个或多个控件按照中心垂 直对齐格式放置 7. Central Horizontal: 将选定的一个或多个控件按照中心 水平对齐格式放置 8. Space Across:将选定的多个控件两两之间的水平间隔 相同