欢迎来到天天文库
浏览记录
ID:22583545
大小:531.95 KB
页数:46页
时间:2018-10-30
《mfc微软基础类库》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、微软基础类犀(英语:MicrosoftFoundationClasses,简称MFC)是一个微软公司提供的类库(classlibraries),以C++类的形式封装了WindowsAPI,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和纟II件的封装类。中文名微软基础类库外文名MicrosoftFoundationClasses简称MFC类型C/C++的阁形化界面语言幵发者微软特点效率损失低1定义2MFC和Win32编辑MFC(MicrosoftFoundationClasses)是微软基础类库的
2、简称,是微软公司实现的一个C++类库,主要封装丫大部分的windowsAPI函数,vc++是微软公司开发的C/C++的集成开发环境,所谓集成开发环境,就是说利用它你可以编辑,编译,调试,而不是使用多种工具轮换操作,灵活性较大。有时人们说vc呢也指它的内部编译器,集成开发环境必须有一个编译器内核,要不有什么用,例如DevC++其中一个编译器内核就是gcc。MFC除了是一个类库以外,还是一个框架,你应该试过,在vc++里新建一个MFC的工程,开发环境会自动帮你产生许多文件,同时它使用丫mfcxx.dll。xx是版木,它封装了mfc内核,所以你在你的代码看不到原木的SDK编程中的消息循环
3、等等东西,闵为MFC框架帮你封装好丫,这样你就可以专心的考虑你程序的逻辑,而不是这些毎次编程都要重复的东西,但是由于是通用框架,没有最好的针对性,当然也就丧失了一些灵活性和效率但是MFC的封装很浅,所以效率上损失不大。MFC和Win32编辑MFCObject和WindowsObject的关系MFC屮最重要的封装是对Win32API的封装,因此,理解WindowsObject和MFCObject(C++对象,一个C++类的实例)之间的关系是理解MFC的关键之一。所谓WindowsObject(Windows对象)是Win32下用句柄表示的Windows操作系统对象;所谓MFCObje
4、ct(MFC对象)是C++对象,是一个C++类的实例,这里(本书范围内)MFCObject是有特定含义的,指封漿WindowsObject的C++Object,并非指任意的C++Object。MFCObject和WindowsObject是不一样的,{H.两者紧密联系。以窗U对象为例:一个MFC窗U对象是一个C++CWnd类(或派生类)的实例,是程序直接创建的。在程序执行屮它随着窗LJ类构造函数的调用而中成,随着析构函数的调用而消失。而Windows窗LJ则是Windows系统的一个内部数据结构的实例,由一个“窗U句柄”标识,Windows系统创建它并给它分配系统资源。Window
5、s窗U在MFC窗U对象创建之后,由CWnd类的Create成员函数创建,“窗U句柄”保存在窗U对象的m_hWnd成员变量屮。Windows窗U可以被一个程序销毁,也可以被用户的动作销毁。MFC窗U对象和Windows窗U对象的关系如图2-1所示。其他的WindowsObject和对应的MFCObject也冇炎似的关系。下面,对MFCObject和WindowsObject作一个比较。有些论断对设备描述表(MFC类是CDC,句柄是HDC)可能不适用,但具体涉及到吋会指出。从数据结构上比较MFCObject是相应C++类的实例,这些类是MFC或者程序员定义的;WindowsObject
6、是Windows系统的lAl部结构,通过一个句柄来引用;MFC给这些类定义Y—个成员变量来保存MFCObject对应的WindowsObject的句柄。对于设备描述表CDC类,将保存两个HDC句柄。从层次上讲比较MFCObject是高层的,WindowsObject是低层的;MFCObject封装丫WindowsObject的大部分或全部功能,MFCObject的使用者不需耍直接应用WindowsObject的HANDLE(句柄)使用Win32API,代荇它的是引用相应的MFCObject的成员函数。从创建上比较MFCObject通过构造函数由程序直接创建;WindowsObjec
7、t由相应的SDK函数创建MFC屮,使用这些MFCObject,一般分两步:首先,创建一个MFCObject,或者在STACK中创建,或者在HEAP中创建,这时,MFCObject的句柄实例变量为空,或者说不是一个宥效的句柄。然后,调用MFCObject的成员函数创建相应的WindowsObject,MFC的句柄变量存储一个有效句柄。CDC(设备描述表类)的创建有所不同,在后面的2.3节会具体说明CDC及其派生类的创建和使用。当然,可以在MFCObject的构造函数屮创
此文档下载收益归作者所有