vc3第10章MFC的基础知识.ppt_第1页
vc3第10章MFC的基础知识.ppt_第2页
vc3第10章MFC的基础知识.ppt_第3页
vc3第10章MFC的基础知识.ppt_第4页
vc3第10章MFC的基础知识.ppt_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

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

温馨提示

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

评论

0/150

提交评论