MFC类库简介

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章、 第三章、MFC类库简介 类库简介
应用程序框架
Application Framework是一组凝聚性强、组织 化强的类库的集合,框架中的类对象彼此间藉消 息的流动而沟通,并相互调用对方的函数以求完 成特定的任务. PC世界里推出了三套C++ Application Framework:
MS:MFC(Microsoft Foundation Class) VC
2011-122011-12-27 24
建议
多看MSDN文档 多查MFC类库参考手册
2011-122011-12-27
25
文件I/O类 文件I/O类 I/O DAO类 DAO类 ODBC类 ODBC类
数组、 数组、列表 和映射类
数组类 列表类 映射类
OLE类 OLE类
调试和异常类
调试支持类 异常类
OLE容器类 OLE容器类 OLE服务器类 OLE服务器类 OLE拖放和数据传输类 OLE拖放和数据传输类 OLE普通对话框类 OLE普通对话框类 OLE动画类 OLE动画类 OLE动画类 OLE动画类 OLE控件类 OLE控件类 活动文档类 其他文档类
Borland:OWL(Object Windows Library) C++ Builder
IBM:Open Class Library Visaul Age C++
2011-122011-12-27 2
应用程序框架
其它C++编译器厂商如:Watcom、 Symantec、Metaware等只供应集成开发 环境(IDE),所采用的Application Framework是MFC
2011-122011-12-27 13
CXTToolBar
m_wndToolBar;
if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || !m_wndToolBar.LoadToolBar(IDR_MAINFRAME)) { TRACE0("Failed to create toolbar\n"); return -1; } // fail to create
General purpose classes
根类:CObject 数据处理类:包括数组、列表和映象类 文件类:CFile 简单独立数据类型类:CRect , CSize, CPoint, CTime, CTimeSpan, CString 调试和异常处理类:CDumptext CExceptions
应用程序体 系结构类
应用程序和线程支持类 命令相关类 文档类 文档模板类 视类(体系结构) 视类(体系结构) 框架窗口(体系结构) 框架窗口(体系结构) 窗口、 窗口、对话 框和控件类
框架窗口类(窗口) 框架窗口类(窗口) 视类(窗口) 视类(窗口) 对话框类 控件条类
文件和数据库类 Internet和 Internet和 网络工作类 ISAPI类 ISAPI类 Socket类 Windows Socket类 Internet类 Win32 Internet类
2011-122011-12-27 12
1.窗口类:CWnd类 .窗口类: 类
Cwnd提供了MFC中所有窗口类的基本功能, Cwnd提供了MFC中所有窗口类的基本功能,是 提供了MFC中所有窗口类的基本功能 CCmdTarget类的子类 CCmdTarget类的子类 创建Windows 创建Windows 窗口要分两 步进行 引入构造函数,构造一个CWnd对象 引入构造函数,构造一个CWnd对象 CWnd 调用Create建立Windows窗口, 调用Create建立Windows窗口,并将 Create建立Windows窗口 它连到CWnd CWnd对象上 它连到CWnd对象上
2011-122011-12-27
14
2.视类:CView类 .视类: 类
该类表示框架窗口的客户区和显示文档数据并接收 输入的客户区,其派生类主要有如下几种: 输入的客户区,其派生类主要有如下几种: CScrollView:具有滚动功能的视的基类 CScrollView: CFormView: CFormView:其布局在对话资源中定义的滚动视 CEditView:具有文本编辑、查找、 CEditView:具有文本编辑、查找、替换和滚动 功能的视 …

Declare_dynamic Implement_dynamic Declare_dyncreate Implement_dyncreate Declare_serial Implement_serial DECLARE_MESSAGE_MAP BEGIN_MESSAGE_MAP ON_COMMAND END_MESSAGE_MAP 声明运行时类信息 实现运行时类信息 声明动态创建 实现动态创建 对象内容的读写 对象内容的读写 声明消息映射 开始消息映射 添加消息映射 结束消息映射
纵览MFC 纵览
MFC分为下列几大群组: General purpose classes Windows API classes Application framework classes High level abstractions Operating system extensions
2011-122011-12-27
Windows消息的管理 消息的管理
消息发送:SendMessage、PostMessage和 消息发送 SendDlgItemMessage 消息处理:消息映射机制 消息处理: afx_msg :标记它是一个消息处理成员函数 DECLARE_MESSAGE_MAP() :对程序执行 部分所定义的消息映射进行初始化 BEGIN_MESSAGE_MAP() 和 () END_MESSAGE_MAP():消息映射宏
2011-122011-12-27 23
举例: BEGIN_MESSAGE_MAP(CMainFrame,CFrameWnd) ON_WM_CREATE() ON_COMMAND(ID_EDIT_COPY, OnEditCopy) ON_WM_CLOSE() END_MESSAGE_MAP() 说明: 说明: CMainFrame类和CFrameWnd :代表当前定义的类 和它的父类
2011-122011-12-27
3
MFC概述
MFC1.0 & MS C/C++7.0
应用程序中非图形部分的类 GUI功能的Windows相关类 GUI功能的Windows相关类 功能的Windows
MFC2.0 & MS VC++1.0 MFC2.0 & MS VC++1.5 MFC3.0 & VC++2.0 MFC4.0 MFC4.21
2011-122011-12-27 15
应用程序框架的MFC层次结构 层次结构 应用程序框架的
CObject
CCmdTargert
CWinthread CWinApp CChildWnd
CDocument CDialog ControlBar
数据类型
BOOL 布尔值 BYTE WORD DWORD UINT LONG LPSTR LPCSTR LPTSTR LPCTSTR BSTR 字符指针 COLORREF LPARAM WPARAM LRESULT WNDPROC POINT RECT SIZE POSITION
MFC对消息的管理 对消息的管理
19

CObject类和CRuntimeClass类中封装了 数个所谓的object services,包括
RTTI:决定运行时的对象的类信息 Serialization:将对象内容写/读文件 动态对象创建:运行时产生一个特定的对象
MFC针对上述机制,准备了一些有意义 的宏
2011-122011-12-27 20
2011-122011-12-27
10
Windows API classes
这些类对应着各个Windows API函数 CWinthread:代表MFC程序中一个线程 CWinapp:代表你的整个MFC程序 CWnd:所有窗口,处理Windows消息 CCmdTarget:CWnd父类,处理命令消 息 绘图和打印类:GDI DC Menu
2011-122011-12-27
17
Operating system extensions
Internet和网络类:IsAPI类 Sockets WinInlet OLE类:各种OLE 数据库类:ODBC DAO类
2011-122011-12-27
18
全局函数
不属于任何类,以afx开头 AfxWinInit 被winMain调用的函数,初始化 AfxBeginThread 开始一个新线程 AfxEndThread 结束一个旧线程 AfxMessageBox Api函数messagebox AfxGetApp 获得程序对象的指针 AfxGetMainWnd 获得程序主窗口指针 AfxGetInstance 获得程序实例句柄 AfxRegisterClas 注册窗口类 s 2011-122011-12-27
以层次结构组织 是用来编 写Windows 应用程序 C++类集 的C++类集 API函数 封装了大部分API 封装了大部分API函数 提供了图形环境下应用程序的框架 提供了图形环境下应用程序的框架 图形环境 提供了创建应用程序的组件
提供了大量的基类供程序员根据不同的应用环境进行扩充 MFC 允许在编程过程中自定义和扩展应用程序中的类 较好的移植性, 较好的移植性,可移植于众多的平台 MFC还很好地保持了程序的向下兼容性 MFC还很好地保持了程序的向下兼容性
6
MFC类的组织结构
MFC类的组织结构
根类: 根类:CObject
MFC中多数类和用户自 MFC中多数类和用户自 定义子类的根类, 定义子类的根类,是抽 象基类。 象基类。它提供了许多 编程所需的公共操作。 编程所需的公共操作。 对象的建立 对象的删除 串行化支持 运行时信息 对象诊断输出 简单数据类型类 绘图和 打印类 输出(设备相关) 输出(设备相关)类 绘图工具类
2011-122011-12-27 11
Application framework classes
应用程序体系结构类:即所谓Document/View结 构,把数据的本体和数据的显示分开处理。由于 文件产生之际,必须动态创建Document / View / Frame,所以必须使用Document Template 管理 CDocTemplate ,CSignleDocTemplate CMultiDocTemplate CDocument CView
CStatusBar/CToolBar
2011-122011-12-27 16
High level abstractions
各种控件类:CToolbar CStatusBar等各 种控件类 增强型的View类:CScrollView CFromView CEditView CTreeView CRtfView
在1.0基础上增添了一些应用程序 1.0基础上增添了一些应用程序 添加了ODBC类 并且还支持OLE的性能 添加了ODBC类,并且还支持OLE的性能 ODBC OLE 增添了对开发32位应用程序的支持 增添了对开发32位应用程序的支持 32
包含了在Win95和NT中大多数新的公共控件和DAO、MAPI 包含了在Win95和NT中大多数新的公共控件和DAO、 Win95 中大多数新的公共控件 增强了对数据库应用程序的支持 利用DAO类通过编程语言来访问、 DAO类通过编程语言来访问 利用DAO类通过编程语言来访问、操纵和管理数据库 Internet也提供了强有力的支持 对Internet也提供了强有力的支持
相关文档
最新文档