VS2008创建MFC程序
VS2008创建MFC程序
1. 点击菜单栏 文件->新建->项目 选择MFC应用程序
MFC ActiveX 控件用来生成MFC ActiveX控件程序。
MFC应用程序用来生成MFC应用程序。
MFC DLL用来生成MFC动态链接库程序。
2. 填好项目名称,存储位置后点击确定进入MFC应用程序向导
注意两个地方:应用程序类型和MFC的使用
选择Use MFC in a shared DLL时MFC的类会以动态链接库的方式访问,所以我们的应用程序本身就会小些,但是发布应用程序时必须同时添加必要的动态链接库,以便在没有安装VS2010的机子上能够正常运行程序。
选择Use MFC in a static library时MFC的类会编译到可执行文件中,所以应用程序的可执行文件要比上种方式大,但可以单独发布,不需另加包含MFC类的库。
根据自己需求选择好后点击 ”下一步”
3. 复合文档支持,可以通过它向应用程序加入OLE支持,指定OLE选项的复合文档类型。本例不需要OLE特性,使用默认值“None”。点“下一步”按钮。
4. 文档模板字符串,可以设置程序能处理的文件的扩展名。对话框其他选项还可以更改程序窗口的标题。我们都使用默认设置,点“下一步”按钮。
5. 数据库支持,用于设置数据库选项。此向导可以生成数据库应用程序需要的代码。它有四个选项:
None:忽略所有的数据库支持;
**Header files only**:只包含定义了数据库类的头文件,但不生成对应特定表的数据库类或视图类;
**Database view without file support**:创建对应指定表的一个数据库类和一个视图类,不附加标准文件支持;
**Database view with file support**:创建对应指定表的一个数据库类和一个视图类,并附加标准文件支持。
本例选择默认值“None”,不使用数据库特性。点“下一步”按钮。
6. 用户界面功能,即用户界面特性。我们可以设置有无最大化按钮、最小化按钮、系统菜单和初始状态栏等。还可以选择使用菜单栏和工具栏生成简单的应用程序还是使用ribbon。这里我们都选择默认设置。点“下一步”。
7. 高级功能,可以设置的高级特性包括有无打印和打印预览等。在”最近文件列表上的文件数”项可以设置在程序界面的文件菜单下面最近打开文件的个数。我们仍使用默认值。点“下一步”按钮。
8. 生成的类。在对话框上部的“生成类”列表框内,列出了将要生成的4 个类:
一个视图类(CTestView)、一个应用类(CTestApp)、一个文档类(CTestDoc)和一个主框架窗口类(CMainFrame)。在对话框下面的几个编辑框中,可以修改默认的类名、类的头文件名和源文件名。对于视图类,还可以修改其基类名称,默认的基类是CView, 还有其他几个基类可以选择。这里我们还是使用默认设置。点“完成”按钮。
应用程序头文件和源文件
应用程序向导会根据应用程序的类型(单文档、多文档或基于对话框的程序)自动生成一些头文件和源文件,这些文件是工程的主体部分,用于实现主框架、文档、视图等。
Test.h:应用程序的主头文件。主要包含由CWinAppEx类派生的CTestApp类的声明,以及CTestApp类的全局对象theApp的声明。
Test.cpp:应用程序的主源文件。主要包含CTestApp类的实现,CTestApp类的全局对象theApp的定义等。
MainFrm.h和MainFrm.cpp:通过这两个文件从CFrameWndEx类派生出CMainFrame类,用于创建主框架、菜单栏、工具栏和状态栏等。
TestDoc.h和TestDoc.cpp:这两个文件从CDocument类派生出文档类CTestDoc,包含一些用来初始化文档、串行化(保存和装入)文档和调试的成员函数。
TestView.h和TestView.cpp:它们从CView类派生出名为CTestView的视图类,用来显示和打印文档数据,包含了一些绘图和用于调试的成员函数。
ClassView.h和ClassView.cpp:由CDockablePane类派生出CClassView类,用于实现应用程序界面左侧面板上的Class View。
FileView.h和FileView.cpp:由CDockablePane类派生出CFileView类,用于实现应用程序界面左侧面板上的File View。
OutputWnd.h和OutputWnd.cpp:由CDockablePane类派生出COutputWnd类,用于实现应用程序界面下侧面板Output。
PropertiesWnd.h和PropertiesWnd.cpp:由CDockablePane类派生出CPropertiesWnd类,用于实现应用程序界面右侧面板Properties。
ViewTree.h和ViewTree.cpp:由CTreeCtrl类派生出CViewTree类,用于实现出现在ClassView和FileView等中的树视图。
资源文件
一般我们使用MFC生成窗口程序都会有对话框、图标、菜单等资源,应用程序向导会生成资源相关文件:res目录、test.rc文件和Resource.h文件。
*res目录*:工程文件夹下的res目录中含有应用程序默认图标、工具栏使用图标等图标文件。
*test.rc*:包含默认菜单定义、字符串表和加速键表,指定了默认的About对话框和应用程序默认图标文件等。
*Resource.h*:含有各种资源的ID定义。
主要类之间的关系
CTestApp类处理消息,将收到的消息分发给相应的对象。
CMainFrame是视图CTestView的父窗口,视图CTestView就显示在CMainFrame的客户区中。
视图类CTestView用来显示文档类CTestDoc中的数据,并根据对视图类的操作修改文档类的数据。一个视图类只能跟一个文档类相联系,而一个文档类可以跟多个视图类相联系。