面向对象与可视化程序设计第10章_第1页
面向对象与可视化程序设计第10章_第2页
面向对象与可视化程序设计第10章_第3页
面向对象与可视化程序设计第10章_第4页
面向对象与可视化程序设计第10章_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2020 4 15 1 面向对象与可视化程序设计 VisualC 编程主讲教师 唐龙教授 计算机科学与技术系 黄维通博士 计算机与信息管理中心 清华大学2001年2月 2020 4 15 2 第十章MFC的基础知识 2020 4 15 3 内容提要 MFC概述MFC类的组织结构及主要的类MFC中全局函数与全局变量应用程序向导及其应用 2020 4 15 4 10 1 MFC概述 2020 4 15 5 1 VC 编程的实现方法 利用WindowsAPI函数编程 用户需要编写大量的代码 工作量大 利用MFC和向导 Wizard 实现可视化编程 其步骤如下 用ClassWizard生成应用程序的基本框架 用ClassWizard建立类 消息处理 数据处理函数或定义控件的属性 事件和方法 把各应用程序所要求的功能添加到类中 2020 4 15 6 2 MFC及其特点 MFC是用来编写Windows应用程序的C 类集以层次结构组织封装了大部分API函数提供了图形环境下应用程序的框架提供了创建应用程序的组件提供大量的基类便于不同的应用环境进行扩充允许自定义和扩展应用程序中的类较好的移植性 可移植于众多的平台很好地保持了程序的向下兼容性 2020 4 15 7 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也提供了强有力的支持 2020 4 15 8 10 2 MFC类的组织结构及主要的类 2020 4 15 9 1 MFC类的组织结构 从根类Cobject派生出许许多多子类 以层次结构组织起来 主要有以下若干类 应用程序体系结构类 窗口 对话框和控件类 绘图和打印类 简单数据类型类 数组 列表和映射类 文件和数据库类 Internet和网络工作类 OLE类 调试和异常类 2020 4 15 10 1 MFC类的组织结构 续 应用程序体系结构类 应用程序和线程支持类命令相关类文档类文档模板类视类 体系结构 框架窗口 体系结构 窗口 对话框和控件类框架窗口类 窗口 视类 窗口 对话框类控件条类 2020 4 15 11 1 MFC类的组织结构 续 绘图和打印类输出 设备相关 类绘图工具类数组 列表和映射类数组类列表类映射类文件和数据库类文件I O类DAO类ODBC类 2020 4 15 12 1 MFC类的组织结构 续 Internet和网络工作类LSAPI类WindowsSocket类Win32Internet类调试和异常类调试支持类异常类 2020 4 15 13 1 MFC类的组织结构 续 OLE ObjectLinkingandEmloadding 类OLE容器类OLE服务器类OLE拖放和数据传输类OLE普通对话框类OLE动画类OLE动画类OLE控件类活动文档类其他文档类 2020 4 15 14 2 根类 根类Cobject的多数是抽象基类 提供了许多编程所需的公共操作 对象的建立 对象的删除 串行化支持 有两重要成员函数 Serialize和IsSerialize 运行时信息 有两重要成员函数 IsKindof和CRuntimeClass 对象诊断输出 2020 4 15 15 3 应用程序体系结构类 用于构造应用程序框架 提供多数应用程序公用的功能 编写程序的任务是填充框架 添加应用程序专用的功能 其中较重要类 命令相关类 窗口应用程序类 文档 视类 线程基类 2020 4 15 16 CObject的子类 MFC库中所有具有消息映射属性的基类 消息映射规定了当一对象接收到消息命令时 应调用哪一个函数对该消息进行处理 2 窗口应用程序类 CWinApp类 每个应用程序有且仅有一个从CWinApp类中派生的对象 在运行程序中该对象与其它对象相互协调 CWinApp类封装了初始化 运行 终止应用程序的代码 1 命令相关类 CCmdTarget类 2020 4 15 17 3 文档 视类 文档对象由文档模板对象创建 管理应用程序的数据 视对象表示一个窗口的客户区 显示文档数据并允许用户与之交互 4 线程基类 CWinThread类 所有线程的基类 可直接使用 CWinApp类就是从CWinThread类中派生出来的 2020 4 15 18 4 可视对象类 窗口类 CWnd类视类 CView类菜单类 CMenu类对话框类 CDialog类控件类控件条类 CControlBar类 2020 4 15 19 1 窗口类 CWnd类 Cwnd是CCmdTarget类的子类 提供了所有窗口类的基本功能 创建Windows窗口的两个步骤 引入构造函数 构造一个CWnd对象调用Create建立Windows窗口 并连到CWnd对象 2 视类 CView类 表示框架窗口的用户区和显示文档数据并接收输入的用户区 其主要派生类 CScrollView 具有滚动功能的视的基类CFormView 其布局在对话资源中定义的滚动视CEditView 具有文本编辑 查找 替换和滚动功能的视 2020 4 15 20 3 菜单类 CMenu类 CObject类的子类 用于管理菜单 一个WindowsHMenu的封装 提供了菜单资源建立 修改 跟踪及删除的成员函数 4 对话框类 CDialog类 从CWnd类中派生出来的特殊的窗口类 包括通用对话框类CDialog以及支持文件选择 颜色选择 字体选择 打印 替换文本的公共标准对话框子类 2020 4 15 21 5 控件类 包括若干主要类 按钮静态文本滚动条编辑框 为Windows应用程序提供了各种输入和显示界面 用于建立静态文本 命令按钮 位图按钮 列表框 组合框 滚动条 编辑框等 2020 4 15 22 6 控件条类 CControlBar类 连接在主窗口框架的顶部或底部的小窗口 为工具条 状态条 对话条和分割窗口建立模型 包括如下的基类 CToolBar 工具条 CStatusBar 状态条 CDialogBar 对话条 2020 4 15 23 7 绘画对象类 CGdiObject类 图形绘画对象子层次结构以CGdiObject类为根类 可用于建立绘画对象模型 如画笔 刷子 字体 位图 调色板等 其子类有 Cbitmp 位图Cbrush 刷子Cfont 字体Cpalette 调色板CPen 画笔CRgn 域 2020 4 15 24 8 设备描述表类 CDC类 是CObject类的子类 其子类有 CpainDCCClientDCCWindowDCCMetaFileDC该类及其子类支持设备描述表对象 包括许多成员函数 如映射函数 绘画工具函数 区域函数等 可以完成所有的绘画工作 2020 4 15 25 5 通用类 此类提供了许多通用服务 例如 文件I O诊断和异常处理如数组和列表等存放数据集的类 2020 4 15 26 1 文件类 用以编写输入输出处理函数 主要文件类有 CFile类 访问二进制磁盘文件CMemFile类 访问住内存文件CStdioFile类 访问 文本 磁盘文件CArchive类 与Cfile对象一起通过串行化实现对象的永久存储 2020 4 15 27 2 异常类 CException类 CException是所有异常情况的基类 不能直接建立CException对象 只能建立派生类的对象 用派生类来捕获指定的异常情况Cexception的派生类有 CArchiveException类 归档异常CFileException类 文件异常CMemoryException类 内存 不够 异常CNotSupportedException类 用未支持特征异常CResourceException类 装载资源 失败 异常CUseException类 用于停止用户起动的操作异常 2020 4 15 28 3 模板收集类 可将多种对象存放到数组 列表和 映射 中 但这些收集类是模板 它们的参数确定了存放在集合中的对象类型 主要的模板收集类有 CArray类 元素存入数组CMap类 键映射到值CList类 元素存入链表CTypedPtrList类 将对象指针存入链表的类型CTypedPtrArray类 将对象指针存入数组的类型CTypedPtrMap类 将键指针映射到值指针的类型 2020 4 15 29 6 OLE类 对象连接与嵌入类包括3组 共9个类 普通类COleDocuemntCOleItemCOleException客户类COleClientDocCOleClientItem服务器类COleServerCOleTemplateCOleServerDocCOleServerItem 2020 4 15 30 开放数据库连接层提供了一些类来支持ODBC特征 即通过这些类可开发数据库应用程序来访问多个数据库文件 主要包括的类 CDataBase类 对一个数据源的连接Crecordset类 选一组记录CRecordView类 直接连接一记录集的格式视CFieldExchange类 支持记录字段交换CLongBinary类 封装一存储句柄CDBException类 数据存取处理 失败 异常 7 ODBC数据库类 2020 4 15 31 10 3 MFC中全局函数与全局变量 2020 4 15 32 以Afx开头的函数除数据库类函数和DDX DialogDataExchange 函数外 都是全局函数 以Afx为前缀的变量 都是全局变量 MFC中全局函数和全局变量 2020 4 15 33 全局函数 2020 4 15 34 10 4应用程序向导及其应用 2020 4 15 35 应用程序向导提供了一个基于MFC的应用程序框架 程序员可在此框架基础上添加实现特定功能的代码 向导及其应用 2020 4 15 36 MFC应用程序向导 File New MFCAppWizard Projectname 2020 4 15 37 MFCAppWizardStep1对话框 所使用的语言文字 建立的应用程序的类型 2020 4 15 38 MFCAppWizardStep2对话框 选择数据库的支持 2020 4 15 39 MFCAppWizardStep3对话框 选择复合文件支持 2020 4 15 40

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论