《MFC教程》02章 用向导创建对话框窗口


一、应用程序的窗口种类

Windows应用程序的窗口类型主要有二种即文档类型(Document)和对话框类型(Dialog),通常说的表单类型(Form)是介于这2种类型之间,主要是对话框类型。VB.NET、C#等主要就是这种表单类型的窗口,实现起来相当简单。

多文档窗口单文档窗口

文档类型的应用程序的界面,大部分区域用于文字或画图等读写操作,常见的有Word、Excel、写字板等。文档类型的窗口又分单文档和多文档2种类型。所谓多文档类型就是在一个窗口框架内有多个子窗口,常见的有Word、Excel、当前编写VC++的IDE等。单文档类型当然就不可能有多个子窗口了,常见的有附件中的写字板、画图等。文档类型的窗口的编程相对对话框来说要复杂得多,是我们学习的主要对象。

对话框类型的界面中使用了很多控件,输入输出主要是针对控件,常见的有计算器、音量控制等。编程相对比较简单,另外公共对话框也是这种类型,不过不需要任何编程,因为这些是操作系统的东西,只调用就可以了。对话框类型是日常我们编程用的最多的,也就是表单类型。另外,对话框类型也可以象文档类型一样进行文字、画图等处理,而文档类型窗口中同样也可以使用控件。

模态对话框窗口非模态对话框窗口

对于文档窗口一般可以改变大小,并且有滚动条,背景多数为白色。而对话框窗口的大小一般是固定的,背景一般是淡灰色,没有滚动条,通常有OK、Cancel等按钮。要注意,对话框窗口有模态和非模态2种类型。所谓模态对话框就是当前对话框不关闭,就不能切换到调用该对话框的父窗口;而所谓非模态窗口就是不关闭当前对话框,也同样可以切换到调用该对话框的父窗口。绝大多数对话框都是模态方式,非模态方式比较少,例如VC.net集成环境中按Ctrl+F弹出的“查找”对话框就是非模态方式。

二、创建一个基于对话框的窗口

在上一章生成单文档应用程序的最后一步中,选择“基于对话框”后再按“完成”按钮。

 

三、阅读原程序的方法

下面,我们要学会用用四种工具来查看或修改生成好的程序。解决方案资源管理器(以前称为项目管理器);类视图;资源视图;属性。

  

“解决方案资源管理器”中显示项目中的所有文件,如果要删除一个既存的程序,或添加一个新程序或头文件等,都是利用这个工具来完成。

“资源视图”中包含菜单、鼠标光标、对话框、图标、工具条、字符串常量表、版本信息表、快捷键、HTML等,在“解决方案资源管理器”中鼠标双击后缀为rc的文件便可打开“资源视图”。添加、修改、删除“资源”都是在“资源视图”中操作。

这些“资源”文件其实都是文本文件,内容基本上是资源的定义(图标等除外),完全可以直接手动编写,但手动编写既容易出错,也不方便。另外,对话框的设计还需要和“属性”工具一起使用,这些都是微软Visual Studio集成工具的基本使用常识,MFC教程中不再详细叙述。

“类视图”是学习MFC最重要的工具,小雅认为初学者要学会或者说习惯这个工具的使用。一个很简单的程序,经过MFC生成之后,便是一个“庞大”的程序,初学者如果一行一行地去读,往往头晕目眩,越看越烦。而通过“类视图”从整体上来分析,能很好地把握整个的设计思路,通过“类视图”能很准确地定位到你想编程的“位置”。例如,添加类成员变量或成员函数,消息处理等,利用工具,多个地方的程序将被同进更新。

通过“类视图”还可以很方便地看到父类的全部信息,从而了解当前的类还有哪些功能可以使用。同时可以看到想相关类的全部信息。这比Java的集成环境(如:Websphere等)不知要方便多少倍。

“属性”使用该窗口查看和更改位于编辑器和设计器中的选定对象的设计时属性及事件。也可以使用“属性”窗口编辑和查看文件、项目及解决方案属性。 “属性”窗口显示编辑字段的不同类型,这取决于特定属性的需要。这些编辑字段包括编辑框、下拉列表以及到自定义编辑器对话框的链接。属性以灰色显示且是只读的。

元素图形说明
对象名 列出当前选定的一个或多个对象。只有活动编辑器或设计器中的对象可见。当选择多个对象时,只出现所有选定对象的通用属性。
按分类顺序 按类别列出选定对象的所有属性及属性值。可以折叠类别以减少可见属性数。展开或折叠类别时,可以在类别名左边看到加号 (+) 或减号 (-)。类别按字母顺序列出。
按字母顺序 按字母顺序对选定对象的所有设计时属性和事件排序。若要编辑可用的属性,请在它右边的单元格中单击并输入更改内容。
属性 显示对象的属性。很多对象的事件也可以使用“属性”窗口来查看。
事件 显示对象的事件。仅当窗体或控件设计器在一个 Visual C# 项目或 C++ 项目托管扩展的上下文中处于活动状态时,此“属性”窗口工具栏控件才可用。
VC消息 列出所有 Windows 消息。为选定类的消息添加或删除指定处理函数。此“属性”窗口工具栏控件仅当“类视图”在 Visual C++ 项目的上下文中为活动窗口时才可用。
VC重写 为选定类列出所有虚函数并允许添加或删除重写函数。此“属性”窗口工具栏控件仅当“类视图”在 Visual C++ 项目的上下文中为活动窗口时才可用。
属性页 显示选定项的“属性页”对话框。“属性页”显示“属性”窗口中的可用属性的子集、同集或超集。使用该按钮可查看和编辑与项目的活动配置相关的属性。
“说明”窗格 N/A 显示属性的属性类型和简短说明。可以使用快捷菜单上的“说明”命令关闭和打开属性的说明。