版权所有复制必究
本章内容
●应用程序框架
●应用程序向导
●应用程序向导生成的文件
●ClassWizard类向导
●程序调试
通过本章的学习我们可以真正利用Visual C++ 创建一个简单的MFC 应用程序。
何谓应用程序框架?
同一类型应用程序的结构大致相同,并有很多相同的源代码,因此可以通过一个应用程序框架AFX(Application FrameWorks)编写同一类型应用程序的通用源代码。
4.1 应用程序向导
●与其它可视化开发工具一样,Visual C++提供了
创建应用程序框架的向导AppWizard和相关的开发工具。
●在可视化开发环境下,生成一个应用程序要做
的工作主要包括编写源代码、添加资源和设置编译方式。向导实质上是一个源代码生成器,利用应用程序向导可以快速创建各种风格的应用程序框架,自动生成程序通用的源代码,这样大大减轻了手工编写代码的工作量。
●即使不非常熟悉Visual C++编程,也可以利用它
的应用程序向导一个简单的应用程序。
4.1.1 Visual C++中的向导类型
创建一个应用程序,首先要创建一个项目。项目用于管理组成应用程序的所有元素,并由它生成应用程序。Visual C++集成开发环境包含了创建各种类型应用程序的向导,执行File菜单中的New命令即可看到向导类型。
Visual C++集成开发环境中主要向导类型:
主要向导类型
●Datebase Project:创建数据库项目
●MFC ActiveX Control Wizard:创建基于MFC的ActiveX控件●MFC AppWizard[dll]:创建基于MFC的动态链接库
●MFC AppWizard[exe]:创建基于MFC的应用程序(最常用)●New Database Wizard:在SQL服务器上创建一个SQL Server数
据库
●Win32 Application:创建Win32应用程序,可不使用MFC,采
用SDK方法编程
●Win32 Console Application:创建DOS下的Win32控制台应用程
序,采用C++或C语言进行编程●Win32 Dynamic-link Library:创建Win32动态链接库,采用
SDK方法
●Win32 Static Library:创建Win32静态链接库,采用SDK方法
4.1.2 使用MFC AppWizard[exe]
引入应用程序向导的目的:
区别于DOS程序,即使一个简单的Windows程序,它也必须显示一个程序运行窗口,需要编写复杂的程序代码。而同一类型应用程序的框架窗口风格是相同的,如相同的菜单栏、工具栏、状态栏和用户区。并且,基本菜单命令的功能也是一样的,如相同的文件操作和编辑命令。所以,同一类型应用程序建立框架窗口的基本代码都是一样的,尽管有些参数不尽相同。为了避免程序员重复编写这些代码,一般的可视化软件开发工具都提供了创建Windows应用程序框架的向导。
MFC AppWizard[exe]的功能:
●MFC AppWizard[exe]是创建基于MFC的Windows应用程
序的向导。当利用MFC AppWizard[exe]创建一个项目时,它能够自动生成一个MFC应用程序的框架。
●即使不添加任何代码,当执行编译、链接命令后,Visual
C++ IDE 将生成一个Windows界面风格的应用程序。
●MFC应用程序框架将那些每个应用程序都共同需要使用
的代码封装起来,如完成默认的程序初始化功能、建立应用程序界面和处理基本的Windows消息,使程序员不必做这些重复的工作,把精力放在编写实质性的代码上。
●MFC AppWizard[exe]向导提供了一系列选项,程序员通
过选择不同的选项,可以创建不同类型和风格的MFC应用程序,并可定制不同的程序界面窗口。例如,单文档、多文档、基于对话框的程序,是否支持数据库操作、是否可以使用ActiveX控件以及是否具有联机帮助等。
例编写一个单文档应用程序Mysdi,程序运行后在程序视图窗口显示信息“这是一个单文档程序!”。
●在Visual C++中执行File|New命令,出现New对话框。
●确认New对话框的当前页面为Project,在左栏的
项目类型列表框中选择MFC AppWizard[exe]项,在Project Name框输入要创建项目的名称。在location栏中输入项目所在的目录,可单击右侧“…”浏览按钮来对默认的目录进行修改。向导将在该目录下存放项目的所有文件。单击OK按钮出现MFC AppWizard-Step1对话框。
●在MFC AppWizard-Step1对话框中选择应用程序
的类型。
MFC AppWizard[exe]创建应用程序的类型:
●Single document:单文档界面应用程序,程序运行后出现标准的Windows界面,它由框架(包括菜单栏、工具栏和状态栏)和用户区组成。并且程序运行后一次只能打开一个文档,如Windows 自带的记事本Notepad。
●Multiple documents:多文档界面应用程序,程序运行后出现标准的Windows界面,并且可以同时打开多个文档,如Word。
●Dialog based:基于对话框的应用程序,程序运行后首先出现一个对话框界面,如计算器Calculator。
在MFC AppWizard-Step 2 of 6选择应用程序所支持的数据库方式,包括以下选项:
●None:向导创建的应用程序不包括对数据库的操作功能,
但以后可以手工添加对数据库的操作代码(默认项)。
●Header files only:提供了最简单的数据库支持,仅在项目
的stdAfx.h文件中使用#include指令包含afxdb.h和afxdao.h两个用于定义数据库类的头文件,但并不生成与数据库相关的类,用户需要时可以自己生成。
●Database view without file support:包含了所有的数据库头
文件,并生成了相关的数据库类和视图类,但不支持文档的序列化,向导创建的应用程序的File主菜单中将不包含有关文件操作的菜单命令项。
●Database view with file support:包含了所有的数据库头文
件,生成了相关的数据库类和视图类,支持文档的序列化。
在MFC AppWizard-Step 3 of 6选择应用程序所支持的数据库方式复合文档类型,包括以下选项:
●None:应用程序不支持任何复合文档(默认项)。
●Container:应用程序作为复合文档容器,能容纳所嵌入
或链接的复合文档对象。
●Mini-server:微型复合文档服务器,应用程序可以创建和
管理复合文档对象,但对于它所创建的复合文档对象,集成应用程序可以嵌入,但不能链接。微型服务器不能作为一个单独的程序运行,而只能由集成应用程序来启动。
●Full-server:完全复合文档服务器,除了具备上面微型服
务器的功能外,应用程序支持链接式对象,并可作为一个单独的程序运行。
●Both container and server:应用程序既可作为一个复合文
档容器,又可作为一个可单独运行的复合文档服务器。
●
Docking toolbar :应用程序具有标准的工具栏(默认项)●Initial status bar :应用程序具有标准的状态栏(默认项)●Printing and print preview :应用程序支持打印和打印预览功能(默认项)
●Context-sensitive Help :应用程序具有上下文相关帮助功能●3D controls :应用程序界面具有三维外观(默认项)●Normal :应用程序采用传统风格的工具栏(默认项)●Internet Explorer ReBars :应用程序采用IE 风格的工具栏●How many files would you like on your recent file list :在File 主菜单可列出文档的最多个数。
●Advanced 按钮:进行更高一级的设置,如修改文件名或扩展名,调整程序用户界面窗口的样式(边框厚度和最小化、最大化、关闭按钮)。在MFC AppWizard-Step 4 of 6设置应用程序界面特征(工具栏和状态栏),包括以下选项:
在MFC AppWizard-Step 5 of 6设置项目的风格,包括以下选项:
●MFC Standard:应用程序采用MFC标准风格(默认项)
●Windows Explorer:应用程序采用Windows资源管理器
风格
●选择向导是否为源代码生成注释
●设置MFC库与应用程序的链接方式:
(1)As a shared DLL:采用共享动态链接库的方式(默认
项),即在程序运行时才调用MFC库。采用此方式可减少应用程序的代码长度。
(2)As a statically linked library:采用静态链接库的方式,
即在编译时把MFC库与应用程序相链接。采用此方式能提高运行速度,且不用考虑程序最终运行环境中是否安装了MFC库。