东西,但是由于是通用框架,没有最好的针对性,当然也就丧失了一些灵活性和效率但
是 MFC 的封装很浅,所以效率上损失不大,灵活性还可以,虽然也有很多缺陷,但还
是一个比较好的东西。
MFC,微软基础类(Microsoft Foundation Classes),实际上是微软提供的,用于在 C++
环境下编写应用程序的一个框架和引擎,VC++是 WinDOS 下开发人员使用的专业 C++
SDK(SDK,Standard SoftWare Develop Kit,专业软件开发平台),MFC 就是挂在它之上的
一个辅助 软件开 发包,MFC 作为与 VC++血肉 相连的 部分( 注 意 C++ 和 VC++ 的 区
别:C++是一种程序设计语言,是一种大家都承认的软件编制的通用规范,而 VC++只是一
个编译器,或者说是一种编译器+源程序编辑器的 IDE,WS,PlatForm,这跟 Pascal 和
Delphi 的关系一个道理,Pascal 是 Delphi 的语言基础,Delphi 使用 Pascal 规范来进行 Win
下应用程序的开发和编译,却不同于 Basic 语言和 VB 的关系,Basic 语言在 VB 开发出来
被应用的年代已经成了 Basic 语言的新规范,VB 新加的 Basic 语言要素,如面向对象程
序设计的要素,是一种性质上的飞跃,使 VB 既是一个 IDE,又成长成一个新的程序设计语
言),MFC 同 BC++集成的 VCL 一样是一个非外挂式的软件包,类库,只不过 MFC 类是微
软为 VC++专配的,MFC 是 Win API 与 C++的结合,API,即微软提供的 WinDOS 下应用
程序的编程语言接口,是一种软件编程的规范,但不是一种程序开发语言本身,可以允许
用户使用各种各样的第三方(如我是一方,微软是一方,Borland 就是第三方)的编程语言
来进行对 WinDOS 下应用程序的开发,使这些被开发出来的应用程序能在 WinDOS 下
运行,比如 VB,VC++,Java,Dehpi 编程语言函数本质上全部源于 API,因此用它们开
发出来的应用程序都能工作在 WinOS 的消息机制和绘图里,遵守 WinDOS 作为一个操
作系统的内部实现,这其实也是一种必要,微软如果不提供 API,这个世上对 Win 编程的
工作就不会存在,微软的产品就会迅速从时尚变成垃圾,上面说到 MFC 是微软对 API 函
数的专用 C++封装,这种结合一方面让用户使用微软的专业 C++ SDK 来进行 Win 下应
用程序的开发变得容易,因为 MFC 是对 API 的封装,微软做了大量的工作,隐藏了好多程
序 阅读会员限时特惠 7 大会员特权立即尝鲜开发人员在 Win 下用 C++ & MFC 编制软
件时的大量内节,如应用程序实现消息的处理,设备环境绘图,这种结合是以方便为目的
的,必定要付出一定代价(这是微软的一向作风),因此就造成了 MFC 对类封装中的一定
程度的的冗余和迂回,但这是可以接受的。最后要明白 MFC 不只是一个功能单纯的界面
开发系统,它提供的类绝大部分用来进行界面开发,关联一个窗口的动作,但它提供的类
中有好多类不与一个窗口关联,即类的作用不是一个界面类,不实现对一个窗口对象的控
制(如创建,销毁),而是一些在 WinDOS(用 MFC 编写的程序绝大部分都在 WinDOS 中运
行)中实现内部处理的类,如数据库的管理类等,学习中最应花费时间的是消息和设备环
境,对 C++和 MFC 的学习中最难的部分是指针,C++面向对像程序设计的其它部分,如数
据类型,流程控制都不难,建议学习数据结构 C++版。MFC 是微软封装了的 API。什么意
思呢?windows 作为一个提供功能强大的应用程序接口编程的操作系统,的确方便了许
多程序员,传统的 win32 开发(直接使用 windows 的接口函数 API)对于程序员来说非
常的困难,因为,API 函数实在太多了,而且名称很乱,从零构架一个窗口动辄就是上
百行的代码。MFC 是面向对象程序设计与 Application framework 的完美结合,他将传
统的 API 进行了分类封装,并且为你创建了程序的一般框架。
MFC Object 和 Windows Object 的关系
MFC 中最重要的封装是对 Win32 API 的封装,因此,理解 Windows Object 和 MFC
Object (C++对象,一个 C++类的实例)之间的关系是理解 MFC 的关键之一。所谓
Windows Object(Windows 对象)是 Win32 下用句柄表示的 Windows 操作系统对象;