MFC框架基础介绍
6/25/2020
.
10
窗口类
CObject
Cபைடு நூலகம்mdTarget
CFrameWnd
CWnd CView
CDialogBox
图:部分窗口类的继承关系
6/25/2020
.
11
其中,CCmdTarget(命令目标类)是MFC中拥有 消息循环和消息处理机制的基类。关于MFC Windows程序中建立消息处理机制的步骤在后面详 细介绍。
6/25/2020
.
8
微软基础类库MFC
CObject
CCmdTarget CWinThread
CWinApp COleControlMod Appulilceation
CDocTemplate
CSingleDocTemplat
eCMultiDocTemplate
6/25/2020
.
CWnd CView
CWnd类是从CCmdTarget中派生出来的重要类,它 是所有窗口类的基类。
CCmdTarget间接派生出了文档/视图结构中应用程 序框架中的许多重要的类:CWinApp、 CFrameWnd、CDocument、CView等(SDI应用程 序框架的四个主要的类)。
6/25/2020
.
12
应用程序框架类 CObject
6/25/2020
.
5
MFC基础
虽然我们要编写的程序在功能是千差万别的,但从本制裁上来讲,都可以化 归为用户界面的设计,对文件的操作,多媒体的使用,数据库的访问等等 一些最主要的方面。这一点正是微软提供MFC类库最重要的原因,在这个 类库中包含了100多个程序开发过程中最常用到的对象。在进行程序设计 的时候,如果类库中的某个对象能完成所需的功能,这时我们只要简单地 调用已有对象的方法就可以了。我们还可以利用面向对象技术中很重要的 “继承”方法从类库中的已有对象派生出我们自己的对象,这时派生出来 的对象除了具有类库中对象的特性和功能之外,还可以由我们自己根据需 要加上所需的特性和方法,产生一个更专门的,功能更为强大的对象。当 然,你也可以在程序中创建全新的对象,并根据需要不断完美对象的功能 。
6/25/2020
.
4
MFC基础
MFC的英文全称是Microsoft Fundation Classes,即微软的基本 类库,MFC的本质就是一个包含了许多微软公司已经定义好 的对象的类库,自从1993年美国微软公司推出Visual C++ 1.0 后 便 配 套 推 出 了 微 软 基 础 类 库 MFC 1.0 ( Microsoft Founddation Class)。
CCCWmindTTharrgeaedt
CDocument
CWinApp
图:应用程序框架类的继承关系 CWinApp类是从CCmdTarget中派生出来的最重要的类,每个用MFC
编写的Windows程序必须有一个它的派生类的对象,它代表一个 应用程序,整个程序的运行都由它负责。CWinApp类很大程度上 隐藏了API Windows程序中WinMain函数。
CFrameView CDocument
user document
9
MFC体系结构
MFC是个相当庞大的类库,各个类间的继承与派 生关系井井有条。 CObject类是MFC的基类,其它大部分类都是从 CObject派生而来的。CObject类的派生类按功能 可分为多个部分。下面简要介绍部分常用的类的 派生结构。
MFC框架基础介绍
讲师:鲍钰 ybao@
6/25/2020
.
1
Microsoft Foundation Class 微软基础类
6/25/2020
.
2
MFC基础
用传统的Windows编程方法开发应用程序,你 会深刻地体会到,即使是开发一个简单地 Windows应用程序也需要对Windows的编程原 理有很深刻的认识,同时也要手工编写很多的 代码。因为程序的出错率几乎是随着代码长度 的增加呈几何级数增长的,这就使得高度程序 变得非常困难。所以传统的Windows编程是需 要极大的耐心和丰富的编程经验的。
.
7
MFC基础
最后要指出的是,MFC类库在提供对象的各种 属性和方法都是经过地谨慎地编写和严格地测 试,可靠性很高,这就保证了使用MFC类库不 会影响程序的可靠性和正确性。
MFC是很庞大的。例如,版本7.0中包含了大 约200个不同的类。万幸的是,你在典型的程 序中不需要使用所有的函数。事实上,你可能 只需要使用其中的10多个MFC中的不同类就可 以建立一个非常漂亮的程序。
6/25/2020
.
3
MFC基础
近几年来,面向对象技术无论是在理论还是实践上都在飞速地 发展。面向对象技术中最重要的就是“对象”的概念,它把 现实世界中的气球、自行车等客观实体抽象成程序中的“对 象”。这种“对象”具有一定的属性和方法,这里的属性指 对象本身的各种特性参数。如气球的体积,自行车的长度等 ,而方法是指对象本身所能执行的功能,如气球能飞、自行 车能滚动等。一个具体的对象可以有许多的属性和方法,面 向对象技术的重要特点就是对象的封装性,对于外界而言, 并不需要知道对象有哪些属性,也不需要知道对象本身的方 法是如何实现的,而只需要调用对象所提供的方法来完成特 定的功能。从这里我们可以看出,当把面向对象技术应用到 程序设计中时,程序只是在编写对象方法时才需要关心对象 本身的细节问题,大部分的时间是放在对对象的方法的调用 上,组织这些对象进行协同工作。
MFC 1.0第一个拉开了以面向对象的程序设计方法编制多任务、 多进程的GUI应用软件系统的序幕。微软公司在16位平台上 几乎没有停留多久,便陆续推出了MFC 1.5,MFC 2.0(含支 持32位的Win32),MFC3.0,MFC 4.0。
1997年5月 随着Visual C++ 5.0的问世,人们看到了支持Web应 用和ActiveX的MFC 6.0基础类库系统。
6/25/2020
.
6
MFC基础
正是由于MFC编程方法充分利用了面向对象技术的优 点,它使得我们编程时极少需要关心对象方法的实 现细节,同时类库中的各种对象的强大功能足以完 成我们程序中的绝大部分所需功能,这使得应用程 序中程序员所需要编写的代码大为减少,有力地保 证了程序良好的可调试性。
6/25/2020