第 6 章
此时会弹出“MFC AppWizard-Step 2 of 6”对话框,如图2-3 所示。
图2-3 “MFC AppWizard-Step 2 of 6”对话框
该对话框用于指定数据库选项。MFC AppWizard 支持数据库并可以生成数据库应用程序
所必需的代码。它可以是以下值之一。
? None:在应用程序中忽略所有的数据库支持。
? Header files only:包括定义基本数据库类的头文件,但不创建对应特定表的数据库类
或视图类。
? Database view without file support:创建对应指定表的一个数据库类和一个视图类,不
附加标准文件支持。
? Database view with file support:创建对应指定表的一个数据库类和一个视图类,并附
加标准文件支持。
这里选择默认值None,不使用数据库特xìng。单击Next 按钮进入下一步。
(4)此时弹出“MFC AppWizard-Step 3 of 6”对话框,如图2-4 所示。
图2-4 “MFC AppWizard-Step 3 of 6”对话框
在这一步中可以向应用程序加入OLE 支持,指定OLE 选项的复合文档类型。因为本例
枫叶文学网www.fywxw.com
第2 章 应用程序基本框架
·9·
中不用OLE 特xìng,所以使用默认值None。单击“Next”按钮,进入下一步。
(5)此时弹出“MFC AppWizard-Step 4 of 6”对话框,如图2-5 所示。
在这一步中可以选择程序用户界面的功能,如工具栏、状态栏、打印和打印预览、上下
文相关帮助等。此外在“How many files would you like on your recent file list?”框中还可以选
择程序中文件菜单下面出现的最近打开过的文件个数。
图2-5 “MFC AppWizard-Step 4 of 6”对话框
单击“Advanced”按钮,将弹出“Advanced Options”对话框,其中有两个标签。在“Doccomnt
Template Strings”标签下可以输入程序能处理的文件的扩展名以及更改程序窗口的标题等;
在“Windows Styles”标签下可以调整程序窗口的风格,如有无系统菜单,有无最大化、最小
化按钮等,如图2-6、图2-7 所示。
图2-6 Advanced Options 对话框的Doccomnt Template String 标签
枫叶文学网www.fywxw.com
Visual C++ 6.0 程序设计从入门到精通
·10·
图2-7 Advanced Options 对话框的Window Styles 标签
本例中不用在“Advanced Options”对话框中输入内容,也不改变选项,单击“Close”
按钮返回到如图2-5 所示的对话框。
不改变默认选择,单击“Next”按钮,进入下一步。
(6)弹出“MFC AppWizard-Step 5 of 6”对话框,如图2-8 所示。
图2-8 “MFC AppWizard-Step 5 of 6”对话框
这里有3 项内容需要设置。
“What style of project would you like? ”项用于设置工程的生成方式。
“Would you like to generate source file cocomnts?”项用于设置是否为生成的源代码添加
必要的注释说明。由于注释说明有助于对应用程序源代码的学习和理解,因此一般选择“Yes,
Please”项。
“How would you like to use the MFC library?”项用于生成MFC 类。选择“As a shared DLL”
项,所有MFC 的类存放在动态链接库中(静态库方式),因此应用程序会小一些,但是发布
该应用程序可执行文件时必需随同提供必要的动态链接库;选择“As a static linked library”
项时,应用程序所用到的MFC 类都编译进了可执行文件之中,因此可执行文件比使用DLL
方式的要大,但可以单独发行。一般的,对于小的应用程序可以采用静态库方式,对于大的
枫叶文学网www.fywxw.com
第2 章 应用程序基本框架
·11·
应用程序一般采用动态链接库方式。
本例中使用默认设置,单击“Next”按钮,继续下一步。
(7)弹出MFC AppWizard 最后一个对话框,如图2-9 所示。
在对话框上部的列表框内,可以看到MFC AppWizard 将要产生的4 个类名称:一个视图
类(CHelloMFCView)、一个应用类(CHelloMFCApp)、一个主框架窗口类(CMainFrcom)
和一个文档类(CHelloMFCDoc)。通过对话框下面的几个编辑框,可以修改默认的类名、类
的头文件名和实现文件名。对于视图类,还可以修改其基类名称,默认的基类是CView,其
他可选的基类有CEditView、CFormView、CHtmlView、CListView、CRichEditView、CScrollView
和CTreeView。
图2-9 “MFC AppWizard-Step 6 of 6”对话框
不改变这些名称,使用默认设置,单击“Finish”按钮。
(8)弹出“New Project Information”对话框,如图2-10 所示。
图2-10 “New Project Information”对话框
枫叶文学网www.fywxw.com
Visual C++ 6.0 程序设计从入门到精通
·12·
在对话框中列出了所建工程的一些基本信息,包括应用程序类型(单文档)、要创建的
类及所在文件、应用程序的一些特xìng(是否支持工具条、状态栏)等。
确认信息后,单击“OK”按钮,则可创建一个工程,即一个应用程序的框架。
(9)生成程序后,在项目工作区中将自动打开HelloMFC.dsw 项目工作区文件,窗口标
题将显示为打开的项目名HelloMFC。这样即生成了一个可执行的应用程序框架。
在菜单中依次选择“Build|Compile”菜单(或按快捷键F7)编译该程序。编译完后选择
“Build|Execute HelloMFC.exe”菜单命令(或按快捷键Ctrl+F5)运行该程序。也可以直接按
组合键Ctrl+F5,系统提示是否编译,选择“Yes”,IDE 将自动编译连接并运行HelloMFC.exe
程序。结果如图2-11 所示。
图2-11 MFC 自动生成的应用程序框架运行结果
2.1.3 Visual C++工程文件的组成
在用AppWizard 创建的工程中包含了框架程序所有的类、全局变量的声明和定义。如果
用Windows 资源管理器查看AppWizard 工具自动创建的工程目录,可以发现该目录下会生成
十几个文件和两个目录,其中res 目录用于存放工程的资源文件,Debug 目录用于存放编译、
连接时产生的中间文件。
在Visual C++中,一个工程文件可以产生两种不同版本的可执行程序:Debug 版本和
Release 版本。其中Debug 版本中包含用于调试的信息和代码,而Release 版本中由于不包含
调试信息,所以不能进行调试,但其最终产生的文件更小。
根据选项设置的不同,AppWizard 所创建的文件会略有不同。标准的AppWizard 文件包
括下面5 个部分:
? 工作区文件和项目文件;
? 应用程序源文件和头文件;
? 资源文件;
? 预编译头文件。
AppWizard 所创建的文件可以在指定的工程路径下找到,每一种文件都有自己明确的作
枫叶文学网www.fywxw.com
第2 章 应用程序基本框架
·13·
用,下面将分别介绍这些文件的作用。
1.工作区文件和项目文件
工程区文件和项目文件主要是用于保存和更新工作区和项目信息,以及相关的类信息
等,主要包括下面几个文件。
? HelloMFC.dsw:这是MFC 自动生成的工作区文件,它包含当前工作区中的项目信息。
? HelloMFC.dsp:这是MFC 生成的项目文件,它包含当前项目的设置、所包含的文件
等信息。
? HelloMFC.clw:这个文件包含ClassWizard 中用来编辑的现有类或增加新类的信息。
ClassWizard 还用这个文件来保存创建和编辑消息映shè和对话框数据所需的信息,或是
创建虚拟成员函数所需的信息。
2.应用程序源文件和头文件
根据应用程序的类型—单文档、多文档或基于对话框,AppWizard 将创建下述应用程
序源文件和头文件中的某些文件,这些文件是工程的主体,负责主框架、文档、视图和相关
cāo作的具体实现,主要包括下面几个方面。
? HelloMFC.h:这是应用程序的主头文件,它包含所有全局符号和用于包含其他头文件
的#include 伪指令。
? HelloMFC.cpp:这个文件是应用程序的主源文件。它将创建CHelloApp 类的一个对象
(从CWinApp 派生),并覆盖InitInstance 成员函数。
? MainFrm.cpp 、MainFrm.h : 这两个文件将从CFrcomWnd ( SDI 应用程序) 或
CMDIFrcomWnd(MDI 应用程序)派生CMainFrcom 类。如果在AppWizard 的Application
Options 页(AppWizard6 步中的第4 步)中选择了对应的可选项的话,CMainFrcom
类将处理工具条按钮和状态条的创建。MainFrcom.cpp 文件中还包含MFC 应用程序提
供的默认工具条按钮的对象ID—buttons 数组。
? HelloMFCDoc.cpp、HelloMFCDoc.h:这两个文件从CDoccomnt 类派生并实现名为
CHelloMFCDoc 的文档类,并含有用于初始化文档、串行化(保存和装入)文档和用
于调试诊断的一些成员函数的框架。
? HelloMFCView.cpp、HelloMFCView.h:这些文件派生并实现名为CHelloMFCView 的
视类,用于显示和打印文档数据。CHelloMFCView 类是从CView 或它的派生类派生
出来的,含有绘制视图和用于调试诊断的一些成员函数框架。
3.资源文件预编译头文件
基于MFC 的Windows 应用程序一般都少不了应用程序资源的支持,AppWizard 会创建
一些与资源相关的文件,同时,与MFC 应用程序相关的预编译头文件也会被创建。
? HelloMFC.rc、Resource.h:这是项目的头文件及其资源文件。资源文件含有一般MFC
应用程序的默认菜单定义和加速键表、字符串表,还指定了默认的About 对话框和一
个图标文件(res\HelloMFC.ico)。资源文件是标准的MFC 类的资源,如果指定了支持
工具条,它还将指定工具条位图文件(res\toolbar.bmp)。
枫叶文学网www.fywxw.com
Visual C++ 6.0 程序设计从入门到精通
·14·
? stdafx.cpp、stdafx.h:这两个文件用于建立一个预编译的
松语文学免费小说阅读_www.16sy.com
图2-3 “MFC AppWizard-Step 2 of 6”对话框
该对话框用于指定数据库选项。MFC AppWizard 支持数据库并可以生成数据库应用程序
所必需的代码。它可以是以下值之一。
? None:在应用程序中忽略所有的数据库支持。
? Header files only:包括定义基本数据库类的头文件,但不创建对应特定表的数据库类
或视图类。
? Database view without file support:创建对应指定表的一个数据库类和一个视图类,不
附加标准文件支持。
? Database view with file support:创建对应指定表的一个数据库类和一个视图类,并附
加标准文件支持。
这里选择默认值None,不使用数据库特xìng。单击Next 按钮进入下一步。
(4)此时弹出“MFC AppWizard-Step 3 of 6”对话框,如图2-4 所示。
图2-4 “MFC AppWizard-Step 3 of 6”对话框
在这一步中可以向应用程序加入OLE 支持,指定OLE 选项的复合文档类型。因为本例
枫叶文学网www.fywxw.com
第2 章 应用程序基本框架
·9·
中不用OLE 特xìng,所以使用默认值None。单击“Next”按钮,进入下一步。
(5)此时弹出“MFC AppWizard-Step 4 of 6”对话框,如图2-5 所示。
在这一步中可以选择程序用户界面的功能,如工具栏、状态栏、打印和打印预览、上下
文相关帮助等。此外在“How many files would you like on your recent file list?”框中还可以选
择程序中文件菜单下面出现的最近打开过的文件个数。
图2-5 “MFC AppWizard-Step 4 of 6”对话框
单击“Advanced”按钮,将弹出“Advanced Options”对话框,其中有两个标签。在“Doccomnt
Template Strings”标签下可以输入程序能处理的文件的扩展名以及更改程序窗口的标题等;
在“Windows Styles”标签下可以调整程序窗口的风格,如有无系统菜单,有无最大化、最小
化按钮等,如图2-6、图2-7 所示。
图2-6 Advanced Options 对话框的Doccomnt Template String 标签
枫叶文学网www.fywxw.com
Visual C++ 6.0 程序设计从入门到精通
·10·
图2-7 Advanced Options 对话框的Window Styles 标签
本例中不用在“Advanced Options”对话框中输入内容,也不改变选项,单击“Close”
按钮返回到如图2-5 所示的对话框。
不改变默认选择,单击“Next”按钮,进入下一步。
(6)弹出“MFC AppWizard-Step 5 of 6”对话框,如图2-8 所示。
图2-8 “MFC AppWizard-Step 5 of 6”对话框
这里有3 项内容需要设置。
“What style of project would you like? ”项用于设置工程的生成方式。
“Would you like to generate source file cocomnts?”项用于设置是否为生成的源代码添加
必要的注释说明。由于注释说明有助于对应用程序源代码的学习和理解,因此一般选择“Yes,
Please”项。
“How would you like to use the MFC library?”项用于生成MFC 类。选择“As a shared DLL”
项,所有MFC 的类存放在动态链接库中(静态库方式),因此应用程序会小一些,但是发布
该应用程序可执行文件时必需随同提供必要的动态链接库;选择“As a static linked library”
项时,应用程序所用到的MFC 类都编译进了可执行文件之中,因此可执行文件比使用DLL
方式的要大,但可以单独发行。一般的,对于小的应用程序可以采用静态库方式,对于大的
枫叶文学网www.fywxw.com
第2 章 应用程序基本框架
·11·
应用程序一般采用动态链接库方式。
本例中使用默认设置,单击“Next”按钮,继续下一步。
(7)弹出MFC AppWizard 最后一个对话框,如图2-9 所示。
在对话框上部的列表框内,可以看到MFC AppWizard 将要产生的4 个类名称:一个视图
类(CHelloMFCView)、一个应用类(CHelloMFCApp)、一个主框架窗口类(CMainFrcom)
和一个文档类(CHelloMFCDoc)。通过对话框下面的几个编辑框,可以修改默认的类名、类
的头文件名和实现文件名。对于视图类,还可以修改其基类名称,默认的基类是CView,其
他可选的基类有CEditView、CFormView、CHtmlView、CListView、CRichEditView、CScrollView
和CTreeView。
图2-9 “MFC AppWizard-Step 6 of 6”对话框
不改变这些名称,使用默认设置,单击“Finish”按钮。
(8)弹出“New Project Information”对话框,如图2-10 所示。
图2-10 “New Project Information”对话框
枫叶文学网www.fywxw.com
Visual C++ 6.0 程序设计从入门到精通
·12·
在对话框中列出了所建工程的一些基本信息,包括应用程序类型(单文档)、要创建的
类及所在文件、应用程序的一些特xìng(是否支持工具条、状态栏)等。
确认信息后,单击“OK”按钮,则可创建一个工程,即一个应用程序的框架。
(9)生成程序后,在项目工作区中将自动打开HelloMFC.dsw 项目工作区文件,窗口标
题将显示为打开的项目名HelloMFC。这样即生成了一个可执行的应用程序框架。
在菜单中依次选择“Build|Compile”菜单(或按快捷键F7)编译该程序。编译完后选择
“Build|Execute HelloMFC.exe”菜单命令(或按快捷键Ctrl+F5)运行该程序。也可以直接按
组合键Ctrl+F5,系统提示是否编译,选择“Yes”,IDE 将自动编译连接并运行HelloMFC.exe
程序。结果如图2-11 所示。
图2-11 MFC 自动生成的应用程序框架运行结果
2.1.3 Visual C++工程文件的组成
在用AppWizard 创建的工程中包含了框架程序所有的类、全局变量的声明和定义。如果
用Windows 资源管理器查看AppWizard 工具自动创建的工程目录,可以发现该目录下会生成
十几个文件和两个目录,其中res 目录用于存放工程的资源文件,Debug 目录用于存放编译、
连接时产生的中间文件。
在Visual C++中,一个工程文件可以产生两种不同版本的可执行程序:Debug 版本和
Release 版本。其中Debug 版本中包含用于调试的信息和代码,而Release 版本中由于不包含
调试信息,所以不能进行调试,但其最终产生的文件更小。
根据选项设置的不同,AppWizard 所创建的文件会略有不同。标准的AppWizard 文件包
括下面5 个部分:
? 工作区文件和项目文件;
? 应用程序源文件和头文件;
? 资源文件;
? 预编译头文件。
AppWizard 所创建的文件可以在指定的工程路径下找到,每一种文件都有自己明确的作
枫叶文学网www.fywxw.com
第2 章 应用程序基本框架
·13·
用,下面将分别介绍这些文件的作用。
1.工作区文件和项目文件
工程区文件和项目文件主要是用于保存和更新工作区和项目信息,以及相关的类信息
等,主要包括下面几个文件。
? HelloMFC.dsw:这是MFC 自动生成的工作区文件,它包含当前工作区中的项目信息。
? HelloMFC.dsp:这是MFC 生成的项目文件,它包含当前项目的设置、所包含的文件
等信息。
? HelloMFC.clw:这个文件包含ClassWizard 中用来编辑的现有类或增加新类的信息。
ClassWizard 还用这个文件来保存创建和编辑消息映shè和对话框数据所需的信息,或是
创建虚拟成员函数所需的信息。
2.应用程序源文件和头文件
根据应用程序的类型—单文档、多文档或基于对话框,AppWizard 将创建下述应用程
序源文件和头文件中的某些文件,这些文件是工程的主体,负责主框架、文档、视图和相关
cāo作的具体实现,主要包括下面几个方面。
? HelloMFC.h:这是应用程序的主头文件,它包含所有全局符号和用于包含其他头文件
的#include 伪指令。
? HelloMFC.cpp:这个文件是应用程序的主源文件。它将创建CHelloApp 类的一个对象
(从CWinApp 派生),并覆盖InitInstance 成员函数。
? MainFrm.cpp 、MainFrm.h : 这两个文件将从CFrcomWnd ( SDI 应用程序) 或
CMDIFrcomWnd(MDI 应用程序)派生CMainFrcom 类。如果在AppWizard 的Application
Options 页(AppWizard6 步中的第4 步)中选择了对应的可选项的话,CMainFrcom
类将处理工具条按钮和状态条的创建。MainFrcom.cpp 文件中还包含MFC 应用程序提
供的默认工具条按钮的对象ID—buttons 数组。
? HelloMFCDoc.cpp、HelloMFCDoc.h:这两个文件从CDoccomnt 类派生并实现名为
CHelloMFCDoc 的文档类,并含有用于初始化文档、串行化(保存和装入)文档和用
于调试诊断的一些成员函数的框架。
? HelloMFCView.cpp、HelloMFCView.h:这些文件派生并实现名为CHelloMFCView 的
视类,用于显示和打印文档数据。CHelloMFCView 类是从CView 或它的派生类派生
出来的,含有绘制视图和用于调试诊断的一些成员函数框架。
3.资源文件预编译头文件
基于MFC 的Windows 应用程序一般都少不了应用程序资源的支持,AppWizard 会创建
一些与资源相关的文件,同时,与MFC 应用程序相关的预编译头文件也会被创建。
? HelloMFC.rc、Resource.h:这是项目的头文件及其资源文件。资源文件含有一般MFC
应用程序的默认菜单定义和加速键表、字符串表,还指定了默认的About 对话框和一
个图标文件(res\HelloMFC.ico)。资源文件是标准的MFC 类的资源,如果指定了支持
工具条,它还将指定工具条位图文件(res\toolbar.bmp)。
枫叶文学网www.fywxw.com
Visual C++ 6.0 程序设计从入门到精通
·14·
? stdafx.cpp、stdafx.h:这两个文件用于建立一个预编译的
松语文学免费小说阅读_www.16sy.com