微软基础类(MFC)是微软公司为方便广大Windows程序员而设计的Windows编程接口,它采用目前流行的面向对象语言C++语言,封装了大量的Windows API,从而大大降低了编写Windows程序的难度。
在美国微软公司推出Windows系列操作操作系统后,在很长的一段时间内编写Windows下的程序一直困扰着无数程序员。要想编写一个Windows程序,只能使用C语言,使用微软公司的SDK(Software Development Kit)开发包。但是学习使用SDK编程的难度是很大的,以至于程序员称SDK为超级困难工具(Super Difficult Kit)。
为了简化Windows编程,微软公司与1989年成立了Application Framework开发小组(AFX)开始设计一用于建立具有图形界面程序的的可移植的类库,用于简化在Windows、OS/2、Macintosh下程序的开发,开发小组希望用面向对象技术建立一个易于使用的并且在三个操作系统之间可以移植的的编程接口。
不幸的是一年以后,AFX计划失败了。原因是AFX小组在许多方面改造了Windows,他们使用了完全不同的窗口和图形子系统和新的AFX的API,它是Windows API的高度抽象(AFX的API根本背离了Windows API,两者互不兼容),但是一个纯粹抽象的类并不实用,运行效率也比较低,而且所有的用C语言编写的SDK代码不易进行相应的转换,所以,Windows程序员也不得不重新学习一套新的Windows编程方法。
微软公司不得不开发了一套新的程序框架,新的框架抛弃了AFX,设计目标也从多平台移植转向了对Windows API的封装,这就是MFC类库。MFC类库用一些类封装了大量的Windows API,不再使用抽象的类隐藏Windows API细节,使用户能同时使用MFC类和Windows API,使程序有几乎与SDK相同的运行效率。
MFC小组取得了成功,MFC类库成为了现实。为了进一步完善MFC类库,MFC小组还研制了集成开发环境(IDE)来支持MFC。Visual C++是微软公司开发的MFC对象与代码一起工作的功能强大的开发工具,Visual C++中的AppWizard和ClassWizard工具彻底改变了Windows的编程环境,最终成为一个工业标准。
MFC的开发借鉴了AFX失败的教训,确定了MFC的几个设计原则,包括以下内容:
·使用C++创建Windows程序的过程更为容易和直观;
·类库有很好的扩展性,以适应类的发展;
·更容易使用Windows的特性;
·使用标准Windows命名约定和编码风格;
·用类封装Windows API和Windows对象,并按标准API的指引完成工作。
MFC的设计目标是使Windows编程更为简单,他们封装了Windows的标准函数,如程序的标注入口为 WinMain()函数,主窗口过程为 WindowProc()函数,并把这些隐藏起来不让 MFC 程序员知道。
MFC 类库有良好的扩展性,微软公司许诺 MFC 类库始终能跟上最新技术。到目前为止,MFC 类库在保持与 SDK 的步调一致方面做得很令人满意。
MFC类库有效的将Windows API和Windows的对象封装在一起,从而使Windows API更易于使用。程序员可以很快使用现有的SDK概念和面向对象方法来创建Windows程序,这样SDK程序员可以很快的熟练使用MFC。