第4讲 对话框的界面世界
摘要
本讲先来讨论对话框界面设计的一般过程和技巧,然后创建对话框类并用模式和无模式的方式来显示对话框。
对话框的界面设计过程
对话框是Windows应用程序中最重要的用户界面元素之一,它是通过对话框上的各种控件来和用户进行交互的。所谓"控件",是指具有一定功能的界面单元,如按钮、编辑框、列表框、组合框等。在这里,我们先来讨论对话框的界面设计过程。
1. 添加对话框资源
(1) 启动Visual Studio .NET,打开上一讲的单文档应用程序项目Viewer。
(2) 打开"项目"菜单,单击"添加资源",弹出"添加资源"对话框,如图1所示。
图1 "添加资源"对话框
(3) 在该对话框中,"导入"按钮是从外部导入一个已有的资源,"自定义"是用来创建一个新的资源类型。在"资源类型"中选定"Dialog",然后单击"新建"按钮。这时"添加资源"对话框消失,回到Visual C++ .NET开发环境。可以看到,系统为对话框资源自动赋给它一个默认的标识名称IDD_DIALOG1,且有两个按钮:"确定"和"取消",在左侧对话框编辑器窗口中,还会自动弹出工具箱窗口。
(4) 单击工具箱窗口上的" ",使工具箱窗口停靠在开发环境的左侧,不再会自动隐藏。
(5) 在对话框的空白处,单击鼠标,将会在属性窗口中显示出对话框资源的属性。图2所示的仅是展开"字体"属性的情形,可以看出:对话框属性有"外观"、"位置"、"行为"、"杂项"和"字体"。其中,对话框Caption(标题)属性在"外观"中,ID属性在"杂项"中,如图2所示。
图2 对话框资源的属性
(6) 保留默认的对话框资源ID号,在属性窗口中,将该对话框的标题内容改为"设置"。
2. 在对话框加添加和布置控件
在对话框中添加控件的方法有很多,这里我们推荐这样的方法:在"工具箱"窗口中,单击要添加的控件并按住鼠标不放,然后移动到对话框中,此时鼠标指针带有一个"+",在需要添加的位置处松开鼠标,这样就添加了该控件。一旦控件添加后,我们可以使用下列一些方法来布置控件。
第一个方法是使用网格和参照线。默认时对话框显示的是参照线,如图3所示,控件的位置一般不能超过参照线的范围,但我们可以通过对话框四周的尺寸柄来调整对话框的尺寸,同时参照线也会自动调整。单击对话框编辑器工具栏上的"网络"按钮 ,就会打开网络,一旦网格显示,添加或移动控件时都将自动定位在网格线上。
图3 对话框资源编辑器
第二个方法是使用对话框编辑器工具栏。对话框编辑器工具栏上包含用于对话框控件布局的工具按钮,如图4所示,它与"格式"菜单下的菜单项命令相对应。
图4 对话框编辑器工具栏
需要说明的是,
① 在使用布局命令之前,首先要选取要布局的控件,一般有好几个,称为控件组,这时只有一个控件周围有实心小方块(一般有八个),这个控件称为"主导控件",布局操作都是以这个"主导控件"为参照的。
② 选取多个控件的方法有两个。一是框选,即:拖动鼠标指针,在对话框中要选择的控件周围画一个选框。当释放鼠标按钮后,选框内和与该框相交的所有控件都被选定。二是单选,即先按住Ctrl或Shift键,然后单击要选择的控件。若按住的键是Shift,则再次单击已选定的控件,那么该控件被取消选定。
③ 当按住Ctrl键后,再单击控件,则该控件就是"主导控件"。
3. 为对话框创建一个类
要想显示和控制对话框,必须先为其创建一个对话框类,如下面的过程:
(1) 在对话框编辑器中,双击对话框的空白处,或右击对话框,弹出快捷菜单,单击"添加类",弹出"MFC类向导"对话框。
(2) 在"类名"框中,键入创建的类名CSetDlg,注意我们一般将大写字母C作为类名的第一个字符,以与其它标识符相区别。
(3) 从"基类"组合框中选择"CDialog"(MFC对话框类),结果如图5所示。其中,".h文件"和".cpp文件"用来指定新类的头文件和实现文件。单击 按钮,可以从弹出的对话框中指定一个已有的文件或其他文件位置,一般不更改默认的代码文件名称。
图5 添加类
(4) 单击"完成"按钮,新的对话框类CSetDlg就创建好了。