- 15
- 0
- 约3.61万字
- 约 45页
- 2017-03-05 发布于重庆
- 举报
MFC微软基础类库
微软基础类库(英语:Microsoft Foundation Classes,简称MFC)是一个微软公司提供的类库(class libraries),以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。中文名
微软基础类库
外文名
MicrosoftFoundationClasses
简????称
MFC
类????型
C/C++的图形化界面语言
开发者
微软
特????点
效率损失低
1定义
2MFC和Win32
1定义编辑
MFC(MicrosoftFoundationClasses)是微软基础类库的简称,是微软公司实现的一个c++类库,主要封装了大部分的windows API函数,vc++是微软公司开发的c/c++的集成开发环境,所谓集成开发环境,就是说利用它你可以编辑,编译,调试,而不是使用多种工具轮换操作,灵活性较大。有时人们说vc呢也指它的内部编译器,集成开发环境必须有一个编译器内核,要不有什么用,例如DevC++其中一个编译器内核就是gcc。 MFC除了是一个类库以外,还是一个框架,你应该试过,在vc++里新建一个MFC的工程,开发环境会自动帮你产生许多文件,同时它使用了mfcxx.dll。xx是版本,它封装了mfc内核,所以你在你的代码看不到原本的SDK编程中的消息循环等等东西,因为MFC框架帮你封装好了,这样你就可以专心的考虑你程序的逻辑,而不是这些每次编程都要重复的东西,但是由于是通用框架,没有最好的针对性,当然也就丧失了一些灵活性和效率但是MFC的封装很浅,所以效率上损失不大。
MFC Object和Windows Object的关系
MFC中最重要的封装是对Win32 API的封装,因此,理解Windows Object和MFC Object (C++对象,一个C++类的实例)之间的关系是理解MFC的关键之一。所谓Windows Object(Windows对象)是Win32下用句柄表示的Windows操作系统对象;所谓MFC Object (MFC对象)是C++对象,是一个C++类的实例,这里(本书范围内)MFC Object是有特定含义的,指封装Windows Object的C++ Object,并非指任意的C++ Object。
MFC Object 和Windows Object是不一样的,但两者紧密联系。以窗口对象为例:
一个MFC窗口对象是一个C++ CWnd类(或派生类)的实例,是程序直接创建的。在程序执行中它随着窗口类构造函数的调用而生成,随着析构函数的调用而消失。而Windows窗口则是Windows系统的一个内部数据结构的实例,由一个“窗口句柄”标识,Windows系统创建它并给它分配系统资源。Windows窗口在MFC窗口对象创建之后,由CWnd类的Create成员函数创建,“窗口句柄”保存在窗口对象的m_hWnd成员变量中。Windows窗口可以被一个程序销毁,也可以被用户的动作销毁。MFC窗口对象和Windows窗口对象的关系如图2-1所示。其他的Windows Object和对应的MFC Object也有类似的关系。
下面,对MFC Object和Windows Object作一个比较。有些论断对设备描述表(MFC类是CDC,句柄是HDC)可能不适用,但具体涉及到时会指出。
从数据结构上比较
MFC Object是相应C++类的实例,这些类是MFC或者程序员定义的;
Windows Object是Windows系统的内部结构,通过一个句柄来引用;
MFC给这些类定义了一个成员变量来保存MFC Object对应的Windows Object的句柄。对于设备描述表CDC类,将保存两个HDC句柄。
从层次上讲比较
MFC Object是高层的,Windows Object是低层的;
MFC Object封装了Windows Object的大部分或全部功能,MFC Object的使用者不需要直接应用Windows Object的HANDLE(句柄)使用Win32 API,代替它的是引用相应的MFC Object的成员函数。
从创建上比较
MFC Object通过构造函数由程序直接创建;Windows Object由相应的SDK函数创建。
MFC中,使用这些MFC Object,一般分两步:
首先,创建一个MFC Object,或者在STACK中创建,或者在HEAP中创建,这时,MFC Object的句柄实例变量为空,或者说不是一个有效的句柄。
然后,调用MFC Object的成员函数创建相应的Windows Object,MFC的句柄变量存储一
您可能关注的文档
最近下载
- 电子倍增层背散射效应对增益及噪声的影响研究.pdf
- 弹簧模型-2023年高考物理动量常用模型模拟题精练(解析版).pdf VIP
- REF615使用操作说明书 (1).pdf
- (高清版)DB33 686-2019 机制纸板和卷烟纸单位产品能耗限额及计算方法.pdf VIP
- 7.3 世界上最大的黄土堆积区—黄土高原 第2课时(教学课件)-2025-2026学年八年级地理下册(人教版2024).pptx
- 深度解析(2026)《SFT 0074-2020耕地和林地破坏司法鉴定技术规范》.pptx VIP
- 2024年贵州省高考生物真题卷(含答案与解析)_7674.pdf VIP
- 弹簧模型-动量守恒的十种模型2025高考物理专项复习含答案.pdf VIP
- 市政协领导班子2024年民主生活会对照检查发言材料(四个带头).docx VIP
- 市政协副主席2024年民主生活会对照检查材料(四个带头).docx VIP
原创力文档

文档评论(0)