资源预览内容
第1页 / 共24页
第2页 / 共24页
第3页 / 共24页
第4页 / 共24页
第5页 / 共24页
第6页 / 共24页
第7页 / 共24页
第8页 / 共24页
第9页 / 共24页
第10页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第1章 MFC基础知识,主讲:杨建枝,MFC概述 创建单文档视图 MFC类的组织结构及主要的类的简介 应用程序体系结构类 可视窗口对象类 通用类 OLE类 MFC中全局函数和全局变量,MFC概述,MFC:微软基础类库(Microsoft Foundation Classes)。 MFC是用来编写Windows应用程序的C+类集,该类集以层次结构组织起来,其中封装了大部分Windows API函数和Windows控件,它所包含的功能涉及到整个Windows操作系统。 MFC不仅为用户提供了 Windows图形环境下应用程序的框架,而且还提供了创建应用程序的组件。,MFC还很好地保持了程序的向下兼容性,是用来编写Windows应用程序的C+类集,提供了大量的基类供程序员根据不同的应用环境进行扩充,允许在编程过程中自定义和扩展应用程序中的类,较好的移植性,可移植于众多的平台,MFC历史,MFC1.0 & MS C/C+7.0 对Windows API进行一个简单的封装,尚未引入DOC/VIEW结构。 引入了CObject及其串行化 MFC2.0 & MS VC+1.0 引入了文档/视结构框架、OLE1.0类、消息映射机制。 引入了一些公用对话框类(对CFileDialog),废弃了1.0版中的CModalDialog类并将它的功能移入到CDialog中。 增加了工具条、对话条、分割视窗的支持。 MFC2.5 & MS VC+1.5 支持了OLE2.0(目标文件链接嵌入) 支持开放式数据库链接(ODBC) 引入了标签式对话框、WinSock和MAPI(Microsoft 电子邮件应用程序接口)支持,MFC3.0 & VC+2.0 增添了对开发32位应用程序的支持 引入了Windows95公共控件(包括动画、热键、图象列表、工具条提示等等)。 MFC4.0 & VC+4.0 引入了CSynchronize、CMutex、CEvent、CMultiLock、CShellNew以更好的支持多线程以及Windows 95的其他一些特性。 MFC4.2 & VC+4.2 增加了Internet特性。 增加了ISAPI和OCX容器支持。 MFC4.21 & VC+5.0 增加了对微软的IntelliMouse(智能鼠标器)的支持。,MFC6.0 & VC+6.0 提出了活动文档容器来管理不同类型的文档,并通过引入类COleDocObjectItem来加以实现。同时在应用程序向导中也加入了对这一新特性的支持。 加入了对动态HTML技术的支持,通过引入一个新类CHtmlView,使程序员开发的应用程序可以浏览并显示用动态HTML技术开发的HTML文档。类CHtmlView中封装了许多浏览器的特征,包括浏览器在历史记录、书签和安全等方面的特征都被封装进了类CHtmlView。 扩展了对公共控件的支持,如时间控键、IP地址控键和日期控键等。 MFC7.0 & VC+.NET 2002(7.0) 采用ISO C98重写了MFC。,创建单文档视图,采用VS6.0进行创建 采用VS2003/VS2005进行创建,MFC类的组织结构及主要的类的简介,MFC库中的类按层次关系划分类: 根类:CObject 应用程序体系结构类 窗口、对话框和控件类 绘图和打印类 简单数据类型类 数组、列表和映射类 文件和数据库类 Internet和网络工作类 OLE类 调试和异常类,根类:CObject,MFC中多数类和用户自定义子类的根类,是抽象类。它提供了许多编程所需的公共操作,对象的建立,对象的删除,串行化支持,运行时信息,对象诊断输出,应用程序体系结构类,窗口、对话框和控件类,绘图和打印类 简单数据类型,绘图和打印类,输出(设备相关),绘图工具类,简单数据类型,数组、列表和映射 调试和异常,数组、列表和映射,数组,列表,映射,调试和异常,调试支持,异常类,文件和数据库类 Internet和网络工作类,文件和数据库类,文件I/O类,DAO类,ODBD类,Internet和网络工作类,ISAPI类,Windows Socket类,Win32 Internet类,应用程序体系结构类,编写程序的任务是填充框架,添加应用程序专用的功能,用于构造应用程 序框架的结构, 提供多数应用程 序公用的功能,命令相关类:CCmdTarget类 该类是CObject的子类,它是MFC库中所有具有消息映射属性的基类。消息映射规定了当一对象接收到消息命令时,应调用哪一个函数对该消息进行处理。 线程基类:CWinThread类 所有线程的基类,可直接使用。CWinApp类就是从CWinThread类中派生出来的 窗口应用程序类:CWinApp 每个应用程序有且只有一个应用程序对象,在运行程序中该对象与其它对象相互协调,该对象从CWinApp类中派生出来。CWinApp类封装了初始化、运行、终止应用程序的代码。 文档/视图 文档对象由文档模板对象创建,管理应用程序的数据。视图对象表示一个窗口的客户区,显示文档数据并允许用户与之交互。,可视窗口对象类,窗口类:CWnd类 视图类:CView该类表示框架窗口的客户区和显示文档数据并接收输入的客户区,其派生类主要有如下几种: CScrollView:具有滚动功能的视图的基类 CFormView:其布局在对话资源中定义的滚动视图 CEditView:具有文本编辑、查找、替换和滚动功能的视图,Cwnd提供了MFC中所有窗口类的基本功能,是CCmdTarget类的子类,创建Windows窗口要分两步进行,引入构造函数,构造一个CWnd对象,调用Create建立Windows窗口,并将它连到CWnd对象上,菜单类:CMenu 该类是CObject类的子类,用于管理菜单。它是一个Windows HMenu的封装,提供了与窗口有关的菜单资源建立、修改、跟踪及删除的成员函数。 对话框类:CDialog 由于对话框是一个特殊的窗口,所以该类是从CWnd类中派生出来的。对话框子层次结构包括通用对话框类CDialog以及支持文件选择、颜色选择、字体选择、打印、替换文本的公共对话框子类。 控件 控件子层次结构包括若干类,使用这些类可建立静态文本、命令按钮、位图按钮、列表框、组合框、滚动条、编辑框等。这些直观控件为Windows应用程序提供了各种输入和显示界面。,控件条类:CControlBar 控件条子层次结构为工具条、状态条、对话条和分割窗口建立模型。该类是CToolBar、CStatusBar、CDialogBar的基类,负责管理工具条、状态条、对话条的一些成员函数。控件条指的是连接在主窗口框架的顶部或底部的小窗口。 绘画对象类:CGdiObject 图形绘画对象子层次结构以CGdiObject类为根类,可用于建立绘画对象模型,如画笔、刷子、字体、位图、调色板等。 设备描述表类:CDC 该类及其子类支持设备描述表对象,是CObject类的子类。CDC类是一个较大的类,包括许多成员函数,如映射函数、绘画工具函数、区域函数等,通过CDC对象的成员函数可以完成所有的绘画工作。,通用类,此类提供了许多通用服务,例如文件I/O、诊断和异常处理等,此外还包括如数组和列表等存放数据集的类。 文件类:CFile类和CArchive类,用以编写输入输出处理函数。 异常类:CException类,是所有异常情况的基类。不能直接建立CException对象,只能建立派生类的对象,用派生类来捕获指定的异常情况。 模板收集类:这些类可以将多种对象存放到数组、列表和“ 映射”中。但这些收集类是模板,它们的参数确定了存放在集合中的对象类型。,CException的派生类如下。 CNotSupportedException:不支持服务异常 CMemoryException:内存异常 CFileException:文件异常 CResourceException:资源异常 COleException:OLE异常 CArchiveException:档案异常 CDaoException:基于DAO的数据库类异常 CDBException:数据库类异常 CUserException:终端用户操作异常,OLE类,MFC 中全局函数和全局变量,以Afx为前缀的函数(数据库类函数和DDX函数除外)和变量,在目前的版本中,都表示全局函数或全局变量。 AfxAbort:无条件终止一个应用程序 AfxBeginThread:创建一个新线程并执行它 AfxEndThread:终止当前正在执行的线程 AfxFormatString:格式化字符串 AfxMessageBox:显示一个Windows消息框 AfxGetApp:返回当前应用程序对象的指针 AfxGetInstanceHandle:返回标识当前应用程序对象的句柄 AfxRegisterWndClass:注册用于创建Windows窗口的窗口类,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号