MFC类库简介(一)
来源:互联网 发布:北邮 校园网络电视 编辑:程序博客网 时间:2024/06/05 18:41
说明:本文是我学习MFC时写的笔记,引用了《Visual C++ 6.0编程实用技术与案例》(清华大学出版社 陈元琰 邓宗明 张睿哲 张晓竞 编著),因此本文仅用于相互交流,切勿用于商业用途,本人不承担任何责任!
1、概要
微软基础类库(Microsoft Class Library,MFC)由两大部分组成:一是通常所说的C++类库,是MFC类库的主体部分,这些类构成了MFC应用程序框架。二是MFC预定义宏、全局变量和全局函数,是MFC类库的辅助部分,它们都是用MFC进行Windows应用程序开发的不可缺少的组成部分。
2、MFC类库简介
2.1 根类
CObject类是大多数MFC类的最终基类,它们都继承了CObject类的三个主要特征:
(1)在运行时识别对象所属的类
(2) 支持串行化,把对象存入文件中及从文件中读取对象
(3) 在运行时打印诊断信息
每个从CObject类派生的类还有一个相关的CRuntimeClass结构,可以在运行时获取对象的信息。通过对RUNTIME_CLASS宏的调用可获得与指定类对应的CRuntimeClass结构。
用户也可以直接从CObject类派生自已的类以获得这些特性。为此,应遵循以下步骤:
(1) 在类声明中包含宏DECLARE_SERIAL;
(2) 为类提供一个默认的构造函数,这是一个无参数的构造函数。
(3) 在用来定义类成员函数的C++源文件中,包含宏IMPLEMENT_SERIAL。
(4) 重载成员函数Serialize()。
2.2 命令发送类
命令发送类CCmdTarget封装了用户通过选择菜单或工具栏按钮向应用程序发送命令的界面。封装了MFC消息映射机制,支持命令和消息的自动发送,保证命令和消息正确发送到目的地。命令发送类CCmdTarget从CObject类派生,是应用程序结构类和窗口类的基类。但CCmdTarget类在应用程序中很少直接使用。
CCmdUI类是一个与CCmdTarget类相关的有特殊用途的支持类,它封装了用于更新用户接口对象(如菜单项和工具栏按钮)的可编程界面,用在CCmdTarget类派生类的ON_UPDATE_COMMAND_UI控制函数中,该类没有任何基类。
2.3 应用程序结构类
应用程序结构类(Application Architecture Class)提供了应用程序的几乎所有通用功能,它们构成了windows应用程序的主要框架。我们通过这些类的派生类,添加新成员函数或重载现有成员函数以实现需要的功能,从而构造应用程序框架。
1、应用程序线程支持类
MFC支持多线程。所有的应用程序至少有一个线程,这个线程由CWinApp类的对象使用,被称为主线程。每个应用程序有且只有一个CWinApp类或其派生类的全局对象,它在程序运行中协调基他对象的动作。
CWinThread类是所有线程类的基类,封装了操作应用程序的多线程功能。CWinThread类是多线程应用程序的线程类的直接基类。
CWinApp是CWinThread类的派生类,封装了基于MFC的windows应用程序的初始化、运行及终止等功能。CWinApp的全局对象控制着整个应用程序的流程。
2、文档类
文档类封装了应用程序的数据管理,文档类对象由由文档模板创建。
CDocument 类是文档类的基类,用户应用程序文档类可从CDocument类直接派生。CDocument类支持一些标准操作,如:新建文档,打开文档、和存储文档等。
3、文档模板类
文档模板类将文档、视图及边框窗口相互联系起来,在创建新文档或视图时协调文档、视图及边框窗口的创建。
CDocTemplate类是一个抽象基类,它为文档模板封装了基本功能,用户不能直接使用该类。
CMultiDocTemplate为多文档接口(MDI)提供了模板。
CSingleDocTemplate为单文档接口(SDI)提供模板。
应用程序结构类还包括其他一些主要与OLE有关的类。
- MFC类库简介(一)
- MFC的ODBC类简介(一)
- MFC类库简介(二)
- MFC文档视图(一):简介
- MFC文档视图(一):简介
- DAO简介(MFC)
- 《MFC游戏开发》笔记一 系列简介
- 《MFC游戏开发》笔记一 系列简介
- 《MFC游戏开发》笔记一 系列简介
- (一)libvirt库简介
- JQuery库:(一)简介
- MFC C++标准库简介
- [MFC]CDocument文档类简介
- 基于MFC框架的C++游戏开发(一)系列简介
- MFC常用类--CTime类(一)
- MFC之集合类(一)
- MFC编程(一)
- MFC入门(一)
- 七年
- Linux 环境变量知识大全之二——系统环境变量的设置
- 中小民营书店急需扶持
- Asp.net的TextBox回车触发事件
- 为自己的程序人生定个框架
- MFC类库简介(一)
- Windows Server 2003 安装IIS和ASP.NET的方法
- grub中调用easyboot
- 水晶报表7子报表填充数据(VB)使用Crystal Report控件
- UML教程
- MFC类库简介(二)
- 盛大技术经理金万钠谈:技术高手的十三个原则
- Linux的分区规定
- 三年记