MFC基础知识概述
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2015-7-3
29
7. ODBC数据库类
开放数据库连接层提供了一些类来支持ODBC特征, 即通过这些类可开发数据库应用程序来访问多个数 据库文件。 主要包括的类: CDataBase类:对一个数据源的连接 Crecordset类:选一组记录 CRecordView类:直接连接一记录集的格式视 CFieldExchange类:支持记录字段交换 CLongBinary类:封装一存储句柄 CDBException类:数据存取处理(失败)异常
2015-7-3
26
(2)异常类——CException类
CException是所有异常情况的基类。 不能直接建立CException对象,只能建立派生类的 对象,用派生类来捕获指定的异常情况 Cexception的派生类有: CArchiveException类:归档异常 CFileException类:文件异常 CMemoryException类:内存(不够)异常 CNotSupportedException类:用未支持特征异常 CResourceException类:装载资源(失败)异常 CUseException类:用于停止用户起动的操作异常
2015-7-3
13
2. 根类
根类Cobject的多数是抽象基类。提供了
许多编程所需的公共操作:
–对象的建立; –对象的删除; –串行化支持,有两重要成员函数: Serialize和 IsSerialize; –运行时信息,有两重要成员函数: IsKindof和 CRuntimeClass; –对象诊断输出。
引入构造函数,构造一个CWnd对象 调用Create建立Windows窗口,并连到CWnd对象
(2)视类——CView类
表示框架窗口的用户区和显示文档数据并接收输入的用 户区; 其主要派生类:
CScrollView:具有滚动功能的视的基类 CFormView:其布局在对话资源中定义的滚动视 CEditView:具有文本编辑、查找、替换和滚动功能的视
2015-7-3 19
(3)菜单类——CMenu类
CObject类的子类,用于管理菜单。 一个Windows HMenu的封装,提供了菜单资源建 立、修改、跟踪及删除的成员函数。
(4)对话框类——CDialog类
从CWnd类中派生出来的特殊的窗口类。 包括通用对话框类CDialog以及支持文件选择、 颜色选择、字体选择、打印、替换文本的公共标准 对话框子类。
2015-7-3
24
5.通用类
此类提供了许多通用服务,例如:
–文件I/O –诊断和异常处理 –如数组和列表等存放数据集的类。
2015-7-3
25
(1)文件类 用以编写输入输出处理函数。 主要文件类有:
CFile类:访问二进制磁盘文件 CMemFile类:访问住内存文件 CStdioFile类:访问(文本)磁盘文件 CArchive类:与Cfile对象一起通过串行化实现对象 的永久存储。
2015-7-3 16
(3)文档/视类
文档对象由文档模板对象创建,管理应用程序的 数据; 视对象表示一个窗口的客户区,显示文档数据并 允许用户与之交互。
(4)线程基类:CWinThread类
所有线程的基类,可直接使用。 CWinApp类就是从CWinThread类中派生出来的。
2015-7-3
2015-7-3 6
3.版本升级与功能的增强
MFC1.0&C/C++7.0提供应用程序中非图形部分的类
GUI功能的Windows相关类; MFC2.0&VC++1.0增添一些应用程序; MFC2.0&VC++1.5加了ODBC类,并支持OLE性能; MFC3.0&VC++2.0支持开发32位应用程序; MFC4.0包含了在Win95和NT中大多数新的公共控件 和DAO、MAPI; MFC4.21增强了对数据库应用程序的支持,利用 DAO类通过编程语言来访问、操纵和管理数据库, 对Internet也提供了强有力的支持。
连接在主窗口框架的顶部或底部的小窗口; 为工具条、状态条、对话条和分割窗口建立模型; 包括如下的基类: CToolBar——工具条; CStatusBar——状态条; CDialogBar——对话条。
2015-7-3
22
(7)绘画对象类——CGdiObject类
图形绘画对象子层次结构以CGdiObject类为根类; 可用于建立绘画对象模型,如画笔、刷子、字体、 位图、调色板等。 其子类有: Cbitmp:位图 Cbrush:刷子 Cfont:字体 Cpalette:调色板 CPen:画笔 CRgn:域
2015-7-3
28
6. OLE类
对象连接与嵌入类包括3组,共9个类。 普通类
–COleDocuemnt –COleItem –COleException
客户类
–COleClientDoc –COleClientItem
服务器类
–COleServer –COleTemplate –COleServerDoc –COleServerItem
2015-7-3 27
(3)模板收集类
可将多种对象存放到数组、列表和“ 映射”中。但这 些收集类是模板,它们的参数确定了存放在集合中的对 象类型。 主要的模板收集类有: CArry类:元素存入数组 CMap类:键映射到值 CList类:元素存入链表 CTypedPtrList类:将对象指针存入链表的类型 CTypedPtrArray类:将对象指针存入数组的类型 CTypedPtrMap类:将键指针映射到值指针的类型
2015-7-3
36
MFC AppWizard Step 1 对话框
建立的应用 程序的类型
所使用的 语言文字
2015-7-3 37
绘图和打印类 –输出(设备相关)类 –绘图工具类 数组、列表和映射类 –数组类 –列表类 –映射类 文件和数据库类
–文件I/O类 –DAO类 –ODBC类
2015-7-3 11
1. MFC类的组织结构(续)
Internet和网络工作类
–LSAPI类 –Windows Socket类 –Win32 Internet类
面向对象与可视化
程序设计
主讲教师:
--Visual C++ 编程
唐 龙教授 (计算机科学与技术系) 黄维通博士 (计算机与信息管理中心)
清 华 大 学
2001年10月
2015-7-3 1
第十章
MFC的基础知识
2015-7-3 2
来自百度文库
内容提要
MFC概述 MFC类的组织结构及主要的类 MFC中全局函数与全局变量 应用程序向导及其应用
2015-7-3 23
(8)设备描述表类——CDC类
是CObject类的子类;其子类有: CpainDC CClientDC CWindowDC CMetaFileDC 该类及其子类支持设备描述表对象; 包括许多成员函数,如映射函数、绘画工具函 数、区域函数等,可以完成所有的绘画工作。
2015-7-3
3
§10.1.
MFC概述
2015-7-3
4
1.VC++编程的实现方法
利用Windows
API函数编程,用户需要编写 大量的代码,工作量大。 利用MFC和向导(Wizard)实现可视化编程,其 步骤如下:
–用Class Wizard生成应用程序的基本框架; –用Class Wizard建立类、消息处理、数据处理 函数或定义控件的属性、事件和方法: –把各应用程序所要求的功能添加到类中。
2015-7-3
5
2.MFC及其特点
MFC是用来编写Windows应用程序的C++类集
–以层次结构组织 –封装了大部分API函数 –提供了图形环境下应用程序的框架 –提供了创建应用程序的组件
提供大量的基类便于不同的应用环境进行扩充
允许自定义和扩展应用程序中的类
较好的移植性,可移植于众多的平台 很好地保持了程序的向下兼容性
2015-7-3 30
§10.3. MFC中全局函数与 全局变量
2015-7-3 31
MFC中全局函数和全局变量
以Afx开头的函数除数据库类函数和 DDX(Dialog Data Exchange)函数外,都 是全局函数。 以Afx为前缀的变量,都是全局变量。
2015-7-3
32
全局函数
函数名 AfxAbort AfxBeginThread AfxEndThread AfxFormatString AfxMessageBox AfxGetApp AfxGetInstanceHandle AfxRegisterWndClass 功能简介 无条件终止一个应用程序 创建一个新线程并执行它 终止当前正在执行的线程 格式化字符串 显示一个 Windows 消息框 返回当前应用程序对象的指针 返回标识当前应用程序对象的句柄 登记用于创建 Windows 窗口的窗口类
调试和异常类
–调试支持类 –异常类
2015-7-3
12
1. MFC类的组织结构(续)
OLE(Object
Linking and Emloadding)类
–OLE容器类 –OLE服务器类 –OLE拖放和数据传输类 –OLE普通对话框类 –OLE动画类 –OLE动画类 –OLE控件类 –活动文档类 –其他文档类
2015-7-3 20
(5)控件类
包括若干主要类:
按钮 静态文本 滚动条 编辑框 …...,
为Windows应用程序提供了各种输入和显示界面。 用于建立静态文本、命令按钮、位图按钮、列表 框、组合框、滚动条、编辑框等。
2015-7-3
21
(6)控件条类——CControlBar类
(请参阅教材263页)
2015-7-3 7
§10.2.
MFC类的组织结构及 主要的类
(请参阅教材263-269页)
2015-7-3
8
1. MFC类的组织结构
从根类Cobject派生出许许多多子类,以层次
结构组织起来,主要有以下若干类:
–应用程序体系结构类; –窗口、对话框和控件类; –绘图和打印类; –简单数据类型类; –数组、列表和映射类; –文件和数据库类; –Internet和网络工作类; –OLE类; –调试和异常类
2015-7-3
14
3.应用程序体系结构类
用于构造应用程序框架,提供多数应用程序
公用的功能. 编写程序的任务是填充框架,添加应用程序 专用的功能; 其中较重要类:
–命令相关类; –窗口应用程序类; –文档/视类; –线程基类; – …...
2015-7-3 15
(1)命令相关类:CCmdTarget类
CObject的子类; MFC库中所有具有消息映射属性的基类。 消息映射规定了当一对象接收到消息命令时,应 调用哪一个函数对该消息进行处理。
(2)窗口应用程序类:CWinApp类
每个应用程序有且仅有一个从CWinApp类中派生的 对象。在运行程序中该对象与其它对象相互协调; CWinApp类封装了初始化、运行、终止应用程序的 代码。
2015-7-3 9
1. MFC类的组织结构(续)
应用程序体系结构类; –应用程序和线程支持类 –命令相关类 –文档类 –文档模板类 –视类(体系结构) –框架窗口(体系结构) 窗口、对话框和控件类 –框架窗口类(窗口) –视类(窗口) –对话框类 –控件条类
2015-7-3 10
1. MFC类的组织结构(续)
2015-7-3
33
§10.4
应用程序向导 及其应用
2015-7-3
34
向导及其应用
应用程序向导提供了一个基于MFC的应用 程序框架; 程序员可在此框架基础上添加实现特定 功能的代码。
2015-7-3
35
File-->New-->MFC AppWizard
Project name
MFC应用 程序向导
17
4.可视对象类
窗口类——CWnd类
视类——CView类
菜单类——CMenu类
对话框类——CDialog类
控件类
控件条类——CControlBar类
2015-7-3
18
(1)窗口类——CWnd类
Cwnd是CCmdTarget类的子类,提供了所有窗口类的基本 功能; 创建Windows窗口的两个步骤: