1. MFC 概述
1. MFC 是一个编程框架
MFC (Microsoft Foundation Class Library)中的各种类结合起来
构成了一个应用程序框架,它的目的就是让程序员在此基础上来建
立 Windows 下的应用程序,这是一种相对 SDK 来说更为简单的方法。
因为总体上,MFC 框架定义了应用程序的轮廓,并提供了用户接口
的标准实现方法,程序员所要做的就是通过预定义的接口把具体应
用程序特有的东西填入这个轮廓。Microsoft Visual C++提供了相
应的工具来完成这个工作:AppWizard 可以用来生成初步的框架文
件(代码和资源等);资源编辑器用于帮助直观地设计用户接口;
ClassWizard 用来协助添加代码到框架文件;最后,编译,则通过
类库实现了应用程序特定的逻辑。
1. 封装
构成 MFC 框架的是 MFC 类库。MFC 类库是 C++类库。这些类
或者封装了 Win32 应用程序编程接口,或者封装了应用程序
的概念,或者封装了 OLE 特性,或者封装了 ODBC 和 DAO 数
据访问的功能,等等,分述如下。
(1)对 Win32 应用程序编程接口的封装
用一个 C++ Object 来包装一个 Windows Object。例如:
class CWnd 是一个 C++ window object,它把 Windows
window(HWND)和 Windows window 有关的 API 函数封装在
C++ window object 的成员函数内,后者的成员变量 m_hWnd
就是前者的窗口句柄。
(2)对应用程序概念的封装
使用 SDK 编写 Windows 应用程序时,总要定义窗口过程,登
记 Windows Class,创建窗口,等等。MFC 把许多类似的处
理封装起来,替程序员完成这些工作。另外,MFC 提出了以
文档-视图为中心的编程模式,MFC 类库封装了对它的支持。
文档是用户操作的数据对象,视图是数据操作的窗口,用户
通过它处理、查看数据。
(3)对 COM/OLE 特性的封装
OLE 建立在 COM 模型之上,由于支持 OLE 的应用程序必须实
现一系列的接口(Interface),因而相当繁琐。MFC 的 OLE
类封装了 OLE API 大量的复杂工作,这些类提供了实现 OLE
的更高级接口。