资源预览内容
第1页 / 共45页
第2页 / 共45页
第3页 / 共45页
第4页 / 共45页
第5页 / 共45页
第6页 / 共45页
第7页 / 共45页
第8页 / 共45页
第9页 / 共45页
第10页 / 共45页
亲,该文档总共45页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
面向对象与可视化面向对象与可视化 -Visual C+ -Visual C+ 编程编程主讲教师主讲教师主讲教师主讲教师:教授教授教授教授 (计算机科学与技术系)(计算机科学与技术系)(计算机科学与技术系)(计算机科学与技术系)博士博士博士博士 (计算机与信息管理中心)(计算机与信息管理中心)(计算机与信息管理中心)(计算机与信息管理中心)清清清清 华华华华 大大大大 学学学学2001200120012001年年年年2 2 2 2月月月月9/16/20241最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件第十章第十章MFCMFC的基础知识的基础知识9/16/20242最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件内容提要内容提要w wMFCMFC概述概述w wMFCMFC类的组织结构及主要的类类的组织结构及主要的类w wMFCMFC中全局函数与全局变量中全局函数与全局变量w w应用程序向导及其应用应用程序向导及其应用9/16/20243最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件10.1.10.1.MFCMFC概述概述9/16/20244最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件1.VC+1.VC+编程的实现方法编程的实现方法F利用利用Windows APIWindows API函数编程,用户需要编写函数编程,用户需要编写大量的代码,工作量大。大量的代码,工作量大。F利用利用MFCMFC和向导和向导( (WizardWizard) )实现可视化编程实现可视化编程, ,其其步骤如下:步骤如下:用用Class WizardClass Wizard生成应用程序的基本框架;生成应用程序的基本框架;用用Class WizardClass Wizard建立类、消息处理、数据处理建立类、消息处理、数据处理函数或定义控件的属性、事件和方法:函数或定义控件的属性、事件和方法:把各应用程序所要求的功能添加到类中。把各应用程序所要求的功能添加到类中。9/16/20245最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件2.MFC2.MFC及其特点及其特点FMFCMFC是用来编写是用来编写WindowsWindows应用程序应用程序的的C+C+类集类集以层次结构组织以层次结构组织封装了大部分封装了大部分APIAPI函数函数提供了提供了图形环境图形环境下应用程序的框架下应用程序的框架提供了创建应用程序的组件提供了创建应用程序的组件F提供大量的基类提供大量的基类便于不同的应用环境进行扩充便于不同的应用环境进行扩充F允许自定义和扩展应用程序中的类允许自定义和扩展应用程序中的类F较好的移植性,较好的移植性,可移植于众多的平台可移植于众多的平台F很好地保持了程序的向下兼容性很好地保持了程序的向下兼容性9/16/20246最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件3.版本升级与功能的增强FMFCMFC1.01.0& &C/C+7.0C/C+7.0提供提供应用程序中非图形部分的类应用程序中非图形部分的类GUIGUI功能的功能的WindowsWindows相关类;相关类;FMFCMFC2.02.0& &VC+1.0VC+1.0增添一些应用程序;增添一些应用程序;FMFCMFC2.02.0& &VC+1.5VC+1.5加了加了ODBCODBC类,并支持类,并支持OLEOLE性能;性能;FMFCMFC3.03.0& &VC+2.0VC+2.0支持开发支持开发3232位应用程序;位应用程序;FMFCMFC4.04.0包含了在包含了在Win95Win95和和NTNT中大多数新的公共控件中大多数新的公共控件和和DAODAO、MAPIMAPI;FMFCMFC4.214.21增强了对数据库应用程序的支持,利用增强了对数据库应用程序的支持,利用DAODAO类通过编程语言来访问、操纵和管理数据库,类通过编程语言来访问、操纵和管理数据库,对对InternetInternet也提供了强有力的支持。也提供了强有力的支持。9/16/20247最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件10.2.10.2. MFCMFC类的组织结构及类的组织结构及主要的类主要的类9/16/20248最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件1. MFC类的组织结构类的组织结构FF从根类从根类Cobject派生出许许多多子类,以层次派生出许许多多子类,以层次结构组织起来,主要有以下若干类:结构组织起来,主要有以下若干类:应用程序体系结构类;应用程序体系结构类;应用程序体系结构类;应用程序体系结构类;窗口、对话框和控件类;窗口、对话框和控件类;窗口、对话框和控件类;窗口、对话框和控件类;绘图和打印类;绘图和打印类;绘图和打印类;绘图和打印类;简单数据类型类;简单数据类型类;简单数据类型类;简单数据类型类;数组、列表和映射类;数组、列表和映射类;数组、列表和映射类;数组、列表和映射类;文件和数据库类;文件和数据库类;文件和数据库类;文件和数据库类;InternetInternetInternetInternet和网络工作类;和网络工作类;和网络工作类;和网络工作类;OLEOLEOLEOLE类;类;类;类;调试和异常类调试和异常类调试和异常类调试和异常类9/16/20249最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件1. MFC类的组织结构(续)类的组织结构(续)FF应用程序体系结构类;应用程序体系结构类;应用程序和线程支持类应用程序和线程支持类应用程序和线程支持类应用程序和线程支持类命令相关类命令相关类命令相关类命令相关类文档类文档类文档类文档类文档模板类文档模板类文档模板类文档模板类视类视类视类视类( ( ( (体系结构体系结构体系结构体系结构) ) ) )框架窗口框架窗口框架窗口框架窗口( ( ( (体系结构体系结构体系结构体系结构) ) ) )FF窗口、对话框和控件类窗口、对话框和控件类框架窗口类(窗口)框架窗口类(窗口)框架窗口类(窗口)框架窗口类(窗口)视类(窗口)视类(窗口)视类(窗口)视类(窗口)对话框类对话框类对话框类对话框类控件条类控件条类控件条类控件条类9/16/202410最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件1. MFC类的组织结构(续)类的组织结构(续)FF绘图和打印类绘图和打印类输出输出输出输出( ( ( (设备相关设备相关设备相关设备相关) ) ) )类类类类绘图工具类绘图工具类绘图工具类绘图工具类FF数组、列表和映射类数组、列表和映射类数组类数组类数组类数组类列表类列表类列表类列表类映射类映射类映射类映射类FF文件和数据库类文件和数据库类文件文件文件文件I/OI/OI/OI/O类类类类DAODAODAODAO类类类类ODBCODBCODBCODBC类类类类9/16/202411最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件1. MFC类的组织结构(续)类的组织结构(续)FFInternetInternet和网络工作类和网络工作类LSAPILSAPILSAPILSAPI类类类类Windows SocketWindows SocketWindows SocketWindows Socket类类类类Win32 InternetWin32 InternetWin32 InternetWin32 Internet类类类类FF调试和异常类调试和异常类调试支持类调试支持类调试支持类调试支持类异常类异常类异常类异常类9/16/202412最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件1. MFC类的组织结构(续)类的组织结构(续)FFOLEOLE(Object Linking and EmloaddingObject Linking and Emloadding)类)类OLEOLEOLEOLE容器类容器类容器类容器类OLEOLEOLEOLE服务器类服务器类服务器类服务器类OLEOLEOLEOLE拖放和数据传输类拖放和数据传输类拖放和数据传输类拖放和数据传输类OLEOLEOLEOLE普通对话框类普通对话框类普通对话框类普通对话框类OLEOLEOLEOLE动画类动画类动画类动画类OLEOLEOLEOLE动画类动画类动画类动画类OLEOLEOLEOLE控件类控件类控件类控件类活动文档类活动文档类活动文档类活动文档类其他文档类其他文档类其他文档类其他文档类9/16/202413最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件2. 根类根类F根类根类CobjectCobject的的多数是多数是抽象基类抽象基类。提供了。提供了许多编程所需的公共操作:许多编程所需的公共操作:对象的建立;对象的建立;对象的建立;对象的建立;对象的删除;对象的删除;对象的删除;对象的删除;串行化支持串行化支持串行化支持串行化支持, , , ,有两重要成员函数:有两重要成员函数:有两重要成员函数:有两重要成员函数: SerializeSerializeSerializeSerialize和和和和IsSerializeIsSerializeIsSerializeIsSerialize;运行时信息运行时信息运行时信息运行时信息, , , ,有两重要成员函数:有两重要成员函数:有两重要成员函数:有两重要成员函数: IsKindofIsKindofIsKindofIsKindof和和和和 CRuntimeClassCRuntimeClassCRuntimeClassCRuntimeClass;对象诊断输出。对象诊断输出。对象诊断输出。对象诊断输出。9/16/202414最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件3.应用程序体系结构类应用程序体系结构类F用于构造应用程序框架,提供多数应用程序用于构造应用程序框架,提供多数应用程序公用的功能公用的功能F编写程序的任务是填充框架,添加应用程序编写程序的任务是填充框架,添加应用程序专用的功能;专用的功能;F其中较重要类:其中较重要类:命令相关类;命令相关类;窗口应用程序类;窗口应用程序类;文档文档/ /视类;视类;线程基类;线程基类;.9/16/202415最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件FCObjectCObject的子类的子类; ;FMFCMFC库中所有具有消息映射属性的基类。库中所有具有消息映射属性的基类。F消息映射消息映射规定了当一对象接收到消息命令时,应规定了当一对象接收到消息命令时,应调用哪一个函数对该消息进行处理。调用哪一个函数对该消息进行处理。(2)(2)窗口应用程序类:窗口应用程序类:CWinAppCWinApp类类F每个应用程序有且仅有一个从每个应用程序有且仅有一个从CWinAppCWinApp类中派生的类中派生的对象。在运行程序中该对象与其它对象相互协调;对象。在运行程序中该对象与其它对象相互协调;FCWinAppCWinApp类封装了类封装了初始化、运行、终止初始化、运行、终止应用程序的应用程序的代码。代码。(1)(1)命令相关类:命令相关类:CCmdTargetCCmdTarget类类9/16/202416最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件(3)(3)文档文档/ /视类视类F文档对象文档对象由文档模板对象创建,管理应用程序的由文档模板对象创建,管理应用程序的数据数据; ;F视对象视对象表示一个窗口的客户区,显示文档数据并表示一个窗口的客户区,显示文档数据并允许用户与之交互。允许用户与之交互。(4)(4)线程基类:线程基类:CWinThreadCWinThread类类F所有线程的基类,可直接使用。所有线程的基类,可直接使用。FCWinAppCWinApp类就是从类就是从CWinThreadCWinThread类中派生出来的。类中派生出来的。9/16/202417最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件4.可视对象类可视对象类FF窗口类窗口类CWndCWnd类类FF视类视类CViewCView类类FF菜单类菜单类CMenuCMenu类类FF对话框类对话框类CDialogCDialog类类FF控件类控件类FF控件条类控件条类CControlBarCControlBar类类9/16/202418最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件(1)(1)窗口类窗口类CWndCWnd类类FCwndCwnd是是CCmdTargetCCmdTarget类的子类,提供了所有窗口类的基本类的子类,提供了所有窗口类的基本功能;功能;F创建创建WindowsWindows窗口的两个步骤:窗口的两个步骤:H引入构造函数,构造一个引入构造函数,构造一个CWndCWnd对象对象H调用调用CreateCreate建立建立WindowsWindows窗口,并连到窗口,并连到CWndCWnd对象对象(2)(2)视类视类CViewCView类类F表示框架窗口的用户区和显示文档数据并接收输入的用表示框架窗口的用户区和显示文档数据并接收输入的用户区;户区;F其主要派生类:其主要派生类:HCScrollViewCScrollView:具有滚动功能的视的基类具有滚动功能的视的基类HCFormViewCFormView:其布局在对话资源中定义的滚动视其布局在对话资源中定义的滚动视HCEditViewCEditView:具有文本编辑、查找、替换和滚动功能的视具有文本编辑、查找、替换和滚动功能的视9/16/202419最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件(3)(3)菜单类菜单类CMenuCMenu类类FCObjectCObject类的子类,用于管理菜单。类的子类,用于管理菜单。F一个一个Windows Windows HMenuHMenu的封装,提供了菜单资源建的封装,提供了菜单资源建立、修改、跟踪及删除的成员函数。立、修改、跟踪及删除的成员函数。(4)(4)对话框类对话框类CDialogCDialog类类F从从CWndCWnd类中派生出来的特殊的窗口类。类中派生出来的特殊的窗口类。F包括通用对话框类包括通用对话框类CDialogCDialog以及支持文件选择、以及支持文件选择、颜色选择、字体选择、打印、替换文本的公共标准颜色选择、字体选择、打印、替换文本的公共标准对话框子类。对话框子类。9/16/202420最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件(5)(5)控件类控件类F包括若干主要类:包括若干主要类:H按钮按钮H静态文本静态文本H滚动条滚动条H编辑框编辑框H.,F为为WindowsWindows应用程序提供了各种输入和显示界面。应用程序提供了各种输入和显示界面。F用于建立静态文本、命令按钮、位图按钮、列表用于建立静态文本、命令按钮、位图按钮、列表框、组合框、滚动条、编辑框等。框、组合框、滚动条、编辑框等。9/16/202421最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件(6)(6)控件条类控件条类CControlBarCControlBar类类F连接在主窗口框架的顶部或底部的小窗口;连接在主窗口框架的顶部或底部的小窗口;F为工具条、状态条、对话条和分割窗口建立模型;为工具条、状态条、对话条和分割窗口建立模型;F包括如下的基类:包括如下的基类:FCToolBarCToolBar工具条;工具条;FCStatusBarCStatusBar状态条;状态条;FCDialogBarCDialogBar对话条。对话条。9/16/202422最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件(7)(7)绘画对象类绘画对象类CGdiObjectCGdiObject类类F图形绘画对象子层次结构以图形绘画对象子层次结构以CGdiObjectCGdiObject类为根类类为根类; ;F可用于建立绘画对象模型,如画笔、刷子、字体、可用于建立绘画对象模型,如画笔、刷子、字体、位图、调色板等。位图、调色板等。F其子类有:其子类有:FCbitmpCbitmp: :位图位图FCbrushCbrush: :刷子刷子FCfontCfont: :字体字体FCpaletteCpalette: :调色板调色板FCPenCPen: :画笔画笔FCRgnCRgn: :域域9/16/202423最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件(8)(8)设备描述表类设备描述表类CDCCDC类类F是是CObjectCObject类的子类;其子类有:类的子类;其子类有:HCpainDCCpainDCHCClientDCCClientDCHCWindowDCCWindowDCHCMetaFileDCCMetaFileDCF该类及其子类支持设备描述表对象;该类及其子类支持设备描述表对象;F包括许多成员函数,如映射函数、绘画工具函包括许多成员函数,如映射函数、绘画工具函数、区域函数等,可以完成所有的绘画工作。数、区域函数等,可以完成所有的绘画工作。9/16/202424最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件5.通用类通用类FF此类提供了许多通用服务,例如:此类提供了许多通用服务,例如:文件文件I/OI/O诊断和异常处理诊断和异常处理如数组和列表等存放数据集的类如数组和列表等存放数据集的类。9/16/202425最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件(1)(1)文件类文件类F用以编写输入输出处理函数。用以编写输入输出处理函数。F主要文件类有:主要文件类有:HCFileCFile类类: :访问二进制磁盘文件访问二进制磁盘文件HCMemFileCMemFile类:访问住内存文件类:访问住内存文件HCStdioFileCStdioFile类:访问(文本)磁盘文件类:访问(文本)磁盘文件HCArchiveCArchive类:与类:与CfileCfile对象一起通过串行化实现对象的对象一起通过串行化实现对象的永久存储。永久存储。9/16/202426最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件(2)(2)异常类异常类CExceptionCException类类FCExceptionCException是所有异常情况的是所有异常情况的基类基类。F不能直接建立不能直接建立CExceptionCException对象,只能建立对象,只能建立派生类派生类的对的对象,用派生类来捕获指定的异常情况象,用派生类来捕获指定的异常情况FCexceptionCexception的派生类有:的派生类有:HCArchiveExceptionCArchiveException类类: :归档异常归档异常HC C类类: :文件异常文件异常HCMemoryExceptionCMemoryException类类: :内存(不够)异常内存(不够)异常HCNotSupportedExceptionCNotSupportedException类类: :用未支持特征异常用未支持特征异常HCResourceExceptionCResourceException类类: :装载资源(失败)异常装载资源(失败)异常HCUseExceptionCUseException类类: :用于停止用户起动的操作异常用于停止用户起动的操作异常9/16/202427最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件(3)(3)模板收集类模板收集类F可将多种对象存放到数组、列表和可将多种对象存放到数组、列表和“ “ 映射映射”中。但这中。但这些收集类是模板,它们的参数确定了存放在集合中的对些收集类是模板,它们的参数确定了存放在集合中的对象类型。象类型。F主要的模板收集类有:主要的模板收集类有:HCArrayCArray类类: :元素存入数组元素存入数组HCMapCMap类类: :键映射到值键映射到值HCListCList类类: :元素存入链表元素存入链表HCTypedPtrListCTypedPtrList类类: :将对象指针存入链表的类型将对象指针存入链表的类型HCTypedPtrArrayCTypedPtrArray类类: :将对象指针存入数组的类型将对象指针存入数组的类型HCTypedPtrMapCTypedPtrMap类类: :将键指针映射到值指针的类型将键指针映射到值指针的类型9/16/202428最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件6. OLE类类F对象连接与嵌入类对象连接与嵌入类包括包括3 3组组, ,共共9 9个类。个类。F普通类普通类COleDocuemntCOleDocuemntCOleItemCOleItemCOleExceptionCOleExceptionF客户类客户类COleClientDocCOleClientDocCOleClientItemCOleClientItemF服务器类服务器类COleServerCOleServerCOleTemplateCOleTemplateCOleServerDocCOleServerDocCOleServerItemCOleServerItem9/16/202429最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件F开放数据库连接开放数据库连接层提供了一些类来支持层提供了一些类来支持ODBCODBC特征特征, ,即通过这些类可开发数据库应用程序来访问多个数即通过这些类可开发数据库应用程序来访问多个数据库文件。据库文件。F主要包括的类主要包括的类:HCDataBaseCDataBase类:对一个数据源的连接类:对一个数据源的连接HCrecordsetCrecordset类:选一组记录类:选一组记录HCRecordViewCRecordView类:直接连接一记录集的格式视类:直接连接一记录集的格式视HCFieldExchangeCFieldExchange类:支持记录字段交换类:支持记录字段交换HCLongBinaryCLongBinary类:封装一存储句柄类:封装一存储句柄HCDBExceptionCDBException类:数据存取处理(失败)异常类:数据存取处理(失败)异常7. ODBC数据库类数据库类9/16/202430最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件10.3.10.3. MFCMFC中全局函数与中全局函数与全局变量全局变量9/16/202431最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件F以以AfxAfx开头的函数除开头的函数除数据库类数据库类函数和函数和DDX(Dialog Data Exchange)DDX(Dialog Data Exchange)函数外,都函数外,都是是全局函数全局函数。F以以AfxAfx为前缀的变量,都是为前缀的变量,都是全局变量全局变量。MFCMFC中全局函数和全局变量中全局函数和全局变量9/16/202432最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件全局函数全局函数9/16/202433最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件10.410.4 应用程序向导应用程序向导及其应用及其应用9/16/202434最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件F应用程序向导提供了一个基于应用程序向导提供了一个基于MFCMFC的的应用应用程序框架程序框架;F程序员可在此程序员可在此框架框架基础上添加实现特定基础上添加实现特定功能的代码。功能的代码。向导及其应用向导及其应用9/16/202435最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件MFC应用应用程序向导程序向导File-New-MFC AppWizardProject name9/16/202436最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件MFC AppWizard Step 1 对话框对话框所使用的所使用的语言文字语言文字建立的应用建立的应用程序的类型程序的类型9/16/202437最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件MFC AppWizard Step 2 对话框对话框选择数据选择数据库的支持库的支持9/16/202438最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件MFC AppWizard Step 3 对话框对话框选择复合选择复合文件支持文件支持9/16/202439最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件MFC AppWizard Step 4 对话框对话框选择选择应用程序应用程序界面外观界面外观9/16/202440最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件MFC AppWizard Step 5 对话框对话框选择应用选择应用程序风格程序风格选择库的选择库的链接方式链接方式选择应用选择应用程序注释程序注释9/16/202441最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件MFC AppWizard Step 6 对话框对话框设置所生设置所生成的文件成的文件名和类名名和类名9/16/202442最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件New Project Information 对话框对话框9/16/202443最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件 MFC AppWizard 自动生成应用程序框架自动生成应用程序框架9/16/202444最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件( (第十章第十章) )完完9/16/202445最新面向对象与可视化程序设计-VisualC+编程主讲教师唐PPT课件
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号