版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象与可视化
程序设计
--VisualC++编程
5/27/20261第十章
MFC的基础知识5/27/20262内容提要MFC概述MFC类的组织结构及主要的类MFC中全局函数与全局变量应用程序向导及其应用5/27/20263§10.1.
MFC概述5/27/202641.VC++编程的实现方法利用WindowsAPI函数编程,用户需要编写大量的代码,工作量大。利用MFC和向导(Wizard)实现可视化编程,其步骤如下:用ClassWizard生成应用程序的基本框架;用ClassWizard建立类、消息处理、数据处理函数或定义控件的属性、事件和方法:把各应用程序所要求的功能添加到类中。5/27/202652.MFC及其特点MFC是用来编写Windows应用程序的C++类集以层次结构组织封装了大部分API函数提供了图形环境下应用程序的框架提供了创建应用程序的组件提供大量的基类便于不同的应用环境进行扩充允许自定义和扩展应用程序中的类较好的移植性,可移植于众多的平台很好地保持了程序的向下兼容性5/27/202663.版本升级与功能的增强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页)5/27/20267§10.2.
MFC类的组织结构及
主要的类
(请参阅教材263-269页)5/27/202681.MFC类的组织结构从根类Cobject派生出许许多多子类,以层次结构组织起来,主要有以下若干类:应用程序体系结构类;窗口、对话框和控件类;绘图和打印类;简单数据类型类;数组、列表和映射类;文件和数据库类;Internet和网络工作类;OLE类;调试和异常类5/27/202691.MFC类的组织结构(续)应用程序体系结构类;应用程序和线程支持类命令相关类文档类文档模板类视类(体系结构)框架窗口(体系结构)窗口、对话框和控件类框架窗口类(窗口)视类(窗口)对话框类控件条类5/27/2026101.MFC类的组织结构(续)绘图和打印类输出(设备相关)类绘图工具类数组、列表和映射类数组类列表类映射类文件和数据库类文件I/O类DAO类ODBC类5/27/2026111.MFC类的组织结构(续)Internet和网络工作类LSAPI类WindowsSocket类Win32Internet类调试和异常类调试支持类异常类5/27/2026121.MFC类的组织结构(续)OLE(ObjectLinkingandEmloadding)类OLE容器类OLE服务器类OLE拖放和数据传输类OLE普通对话框类OLE动画类OLE动画类OLE控件类活动文档类其他文档类5/27/2026132.根类根类Cobject的多数是抽象基类。提供了许多编程所需的公共操作:对象的建立;对象的删除;串行化支持,有两重要成员函数:Serialize和IsSerialize;运行时信息,有两重要成员函数:IsKindof和CRuntimeClass;对象诊断输出。5/27/2026143.应用程序体系结构类用于构造应用程序框架,提供多数应用程序公用的功能.编写程序的任务是填充框架,添加应用程序专用的功能;其中较重要类:命令相关类;窗口应用程序类;文档/视类;线程基类;…...5/27/202615CObject的子类;MFC库中所有具有消息映射属性的基类。消息映射规定了当一对象接收到消息命令时,应调用哪一个函数对该消息进行处理。(2)窗口应用程序类:CWinApp类每个应用程序有且仅有一个从CWinApp类中派生的对象。在运行程序中该对象与其它对象相互协调;CWinApp类封装了初始化、运行、终止应用程序的代码。(1)命令相关类:CCmdTarget类5/27/202616(3)文档/视类文档对象由文档模板对象创建,管理应用程序的数据;视对象表示一个窗口的客户区,显示文档数据并允许用户与之交互。(4)线程基类:CWinThread类所有线程的基类,可直接使用。CWinApp类就是从CWinThread类中派生出来的。5/27/2026174.可视对象类窗口类——CWnd类视类——CView类菜单类——CMenu类对话框类——CDialog类控件类控件条类——CControlBar类5/27/202618(1)窗口类——CWnd类Cwnd是CCmdTarget类的子类,提供了所有窗口类的基本功能;创建Windows窗口的两个步骤:引入构造函数,构造一个CWnd对象调用Create建立Windows窗口,并连到CWnd对象(2)视类——CView类表示框架窗口的用户区和显示文档数据并接收输入的用户区;其主要派生类:CScrollView:具有滚动功能的视的基类CFormView:其布局在对话资源中定义的滚动视CEditView:具有文本编辑、查找、替换和滚动功能的视5/27/202619(3)菜单类——CMenu类CObject类的子类,用于管理菜单。一个WindowsHMenu的封装,提供了菜单资源建立、修改、跟踪及删除的成员函数。(4)对话框类——CDialog类从CWnd类中派生出来的特殊的窗口类。包括通用对话框类CDialog以及支持文件选择、颜色选择、字体选择、打印、替换文本的公共标准对话框子类。5/27/202620(5)控件类包括若干主要类:按钮静态文本滚动条编辑框…...,为Windows应用程序提供了各种输入和显示界面。用于建立静态文本、命令按钮、位图按钮、列表框、组合框、滚动条、编辑框等。5/27/202621(6)控件条类——CControlBar类连接在主窗口框架的顶部或底部的小窗口;为工具条、状态条、对话条和分割窗口建立模型;包括如下的基类:CToolBar——工具条;CStatusBar——状态条;CDialogBar——对话条。5/27/202622(7)绘画对象类——CGdiObject类图形绘画对象子层次结构以CGdiObject类为根类;可用于建立绘画对象模型,如画笔、刷子、字体、位图、调色板等。其子类有:Cbitmp:位图Cbrush:刷子Cfont:字体Cpalette:调色板CPen:画笔CRgn:域5/27/202623(8)设备描述表类——CDC类是CObject类的子类;其子类有:CpainDCCClientDCCWindowDCCMetaFileDC该类及其子类支持设备描述表对象;包括许多成员函数,如映射函数、绘画工具函数、区域函数等,可以完成所有的绘画工作。5/27/2026245.通用类此类提供了许多通用服务,例如:文件I/O诊断和异常处理如数组和列表等存放数据集的类。5/27/202625(1)文件类用以编写输入输出处理函数。主要文件类有:CFile类:访问二进制磁盘文件CMemFile类:访问住内存文件CStdioFile类:访问(文本)磁盘文件CArchive类:与Cfile对象一起通过串行化实现对象的永久存储。5/27/202626(2)异常类——CException类CException是所有异常情况的基类。不能直接建立CException对象,只能建立派生类的对象,用派生类来捕获指定的异常情况Cexception的派生类有:CArchiveException类:归档异常CFileException类:文件异常CMemoryException类:内存(不够)异常CNotSupportedException类:用未支持特征异常CResourceException类:装载资源(失败)异常CUseException类:用于停止用户起动的操作异常5/27/202627(3)模板收集类可将多种对象存放到数组、列表和“映射”中。但这些收集类是模板,它们的参数确定了存放在集合中的对象类型。主要的模板收集类有:CArry类:元素存入数组CMap类:键映射到值CList类:元素存入链表CTypedPtrList类:将对象指针存入链表的类型CTypedPtrArray类:将对象指针存入数组的类型CTypedPtrMap类:将键指针映射到值指针的类型5/27/2026286.OLE类对象连接与嵌入类包括3组,共9个类。普通类COleDocuemntCOleItemCOleException客户类COleClientDocCOleClientItem服务器类COleServerCOleTemplateCOleServerDocCOleServerItem5/27/202629开放数据库连接层提供了一些类来支持ODBC特征,即通过这些类可开发数据库应用程序来访问多个数据库文件。主要包括的类:CDataBase类:对一个数据源的连接Crecordset类:选一组记录CRecordView类:直接连接一记录集的格式视CFieldExchange类:支持记录字段交换CLongBinary类:封装一存储句柄CDBException类:数据存取处理(失败)异常7.ODBC数据库类5/27/202630§10.3.
MFC中全局函数与
全局变量5/27/202631以Afx开头的函数除数据库类函数和DDX(DialogDataExchange)函数外,都是全局函数。以Afx为前缀的变量,都是全局变量。MFC中全局函数和全局变量5/27/202632全局函数5/27/202633§10.4
应用程序向导
及其应用
5/27/202634应用程序向导提供了一个基于MFC的应用程序框架;程序员可在此框架基础上添加实现特定功能的代码。向导及其应用5/27/202635MFC应用程序向导File-->New-->MFCAppWizardProjectname5/27/202636MFCAppWizardStep1对话框所使用的语言文字建立的应用程序的类型5/27/202637MFCAppWizardStep2对话框选择数据库的支持5/27/202638MFCAppWizardStep3对话框选择复合文件支持5/27/202639MFCAppWizardStep4对话框选择应用程序界面外观5/27/202640MFCAppWizardStep5对话框选择应用程序风格选择库的链接方式选择应用程序注释5/27/202641MFCAppWizardStep6对话框设置所生成的文
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年安全知识问答活动方案及流程
- 2026年证券从业资格考试仿真题解析
- 2026年彰显的拼音说课稿
- 2026年民政工作基础知识
- 2026年幼儿园安全管理目标考核方案
- 第四节 交通运输说课稿2025学年初中地理中图版七年级下册-中图版2012
- 2026年数控铣工高级仿真题集及解析
- 2026年说课稿案例分析化学
- 2026年会计初级实务考试仿真题解析
- 2026年侵犯知识产权犯罪管辖
- 金融机构资产管理产品报告系统数据文件格式规范
- 20米箱梁张拉计算书
- LY/T 2579-2016森林火险监测站技术规范
- JJG 544-2011压力控制器
- GB/T 32958-2016流体输送用不锈钢复合钢管
- GB/T 3074.1-2021炭素材料抗折强度测定方法
- GB/T 2670.1-2004内六角花形盘头自攻螺钉
- GB 20690-2006溴鼠灵原药
- 与法同行(主题班会课件)
- 针刀医学基本理论课件
- 资产收购业务尽调清单(完整版)
评论
0/150
提交评论