Visual Studio.NET使用方案这个概念来表示一个工程项目。从概念来说,方案是一个容器,它可以包含了若干个工程及其相关项目。它的最大特点就是能管理与工程相关的多种类型的外部文件。
一、创建一个单文档应用程序
在深入理解方案概念之前,先来创建一个MFC单文档应用程序。
(1) 选择File菜单->New菜单->Project命令,或者在Web浏览窗口中点击Create New Project,就会显示出New Project对话框,如图1所示。
|
(2) 展开左侧Project Types(工程类型)的Visual C++ Projects结点,选择其中的Win32 Projects,在右侧Templates(模板)列表中选中MFC Application。
(3) 在下面的Name框中键入MFC应用程序名称,例如Ex_Hello。第一次使用时最好确定该项目所在的文件夹以便于源文件的管理,用户既可以在Location框中直接键入文件夹名称,也可单击Browse按钮选择一个已有的文件夹。
(4) 单击OK按钮,弹出MFC Application Wizard对话框,如图2所示。
|
(5) 在对话框左侧点击Application Type,弹出如图3的对话框,从中可选定文档/视图的支持、界面风格以及应用程序类型等。
|
(6) 选中Single document上方的单选按钮,在Application Type文字下方有三个选项,依次用来指定复合文档的支持、设置文档模板字串资源以及指定数据库的支持。
(7) 点击User Interface Features,出现如图4所示的对话框,从中可以选定应用程序界面中是否出现“最小化” 按钮、“最大化”按钮、系统菜单、状态栏以及是否具有切分窗口,还可以确定工具栏的外观是标准的可浮动的风格还是浏览器的样式。
|
(8) 点击Advanced Features,出现如图5所示的对话框,从中可以选定应用程序中是否具有上下文帮助和打印及其打印预览功能。
|
(9) 点击Generated Classes,出现如图6所示的对话框,在这里可以对应用程序的相关基类以及类代码保存的文件名作出选择。
|
(10) 单击Finish按钮,一个名为Ex_Hello的MFC单文档应用程序就创建好了。
(11) 打开Build菜单,选择Build或按快捷键Ctrl+Shift+B,系统开始对Ex_Hello进行编译、连接,同时在输出窗口中在线地显示出编译的内容。
(12) 在Debug菜单中选取Start Without Debugging命令或按快捷键Ctrl+F5,就可以运行刚刚生成的Ex_Hello.exe,其结果如7图所示。
|
二、理解方案概念
Visual Studio.NET提出方案的概念,拓展了项目工程的内涵和外延。值得注意的是:
(1) Visual Studio.NET既可创建一个空的方案,也可以创建一个只含有一个工程或只含有一两个外部文件的方案,但当用户创建一个工程项目时,系统会自动将该工程添加到同名的方案中。例如,前面创建的Ex_Hello单文档应用程序,就包含在Ex_Hello方案中。
(2) 由于方案的提出,相关的工程项目文件的扩展名和组织也随之变化。例如前面创建的Ex_Hello方案是保存在Ex_Hello文件夹中,其相应的扩展名是.sln(solution);而工程项目是保存在该文件夹下的Ex_Hello文件夹中,其相应的扩展名是.vcproj(Visual C++ Project)。
三、定制MFC应用程序
这里,将为前面创建的Ex_Hello单文档应用程序添加一个普通模式对话框,然后在客户区单击鼠标左键弹出该对话框。具体的步骤如下:
(1) 运行Microsoft Visual Studio.NET,就会在Web浏览区的主页面上显示前面创建的方案名Ex_Hello,单击它就能打开该方案。
(2) 用下列两种方法可以向某方案添加一个对话框资源:
方法一,选择Project->Add Resouce菜单命令,弹出如图8所示的对话框,单击New按钮即可新添加一个对话框资源。
|
方法二,将方案导航区切换到Resource View页面,展开Ex_Hello.rc,选中Dialog项右击鼠标在弹出的快捷菜单中选择Insert Dialog命令即可。
3) 此时就会在对应的窗口区域显示出对话框模板和相关属性,如图9所示。
|
(4) 用鼠标左击对话框模板的空白区域,就会在Properties窗口显示出更多的对话框属性,其中包括外观、行为、位置和杂项等属性内容,找到FontFace和FontSize项,分别将其更改成“宋体,9”。
(5) 再分别左击OK和Cancel两个按钮,在Properties窗口中将其Caption(标题)改为“确定”和“取消”。
(6) 选择Project->Add Class菜单命令,弹出如图10的对话框,在Categories中选中MFC,再在Templates中选中MFC Class,单击Open按钮。
|
(7) 出现如图11所示的对话框,在Class name框中键入要添加的类名,在Base class中选择其基类为CDialog,在Dialog ID中选择刚才添加的对话框资源,然后按Enter键,系统就会为方案Ex_Hello添加一个用户对话框类。
|
(8) 将方案导航区切换到Class View页面,展开Classes,选中CEx_HelloView,在对应的Properties窗口中点击Message按钮,然后选中WM_LBUTTONDOWN,在右边的下拉框中选择OnLButtonDown项,如图12所示。这样就为CEx_HelloView添加一个WM_LBUTTONDOWN的消息映射函数。
|
(9) 在Class View页面中,展开CEx_HelloView的Functions项,然后双击刚才添加的OnLButtonDown函数,在相应的文档窗口中出现它的函数代码框架,添加下列代码:
void CEx_HelloView::OnLButtonDown(UINT nFlags, CPoint point) |
(10) 在Ex_HelloView.cpp的最前面添加下列语句:
#include "MyDlg.h"
(11) 编译并运行。在Ex_Hello单文档应用程序的客户区内,单击鼠标左键,看看是不是弹出刚才创建的对话框。
至此,我们领略了Visual C++.NET定制MFC应用程序的过程。