欢迎来到天天文库
浏览记录
ID:43776809
大小:958.00 KB
页数:55页
时间:2019-10-14
《网络编程实用教程 叶树华 高志红 网络编程实用教程_第4章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章MFC编程MFC类库是C++类库,构成了MFC编程框架。这些类分别封装了Win32应用程序编程接口、应用程序的概念、OLE特性、以及ODBC和DAO数据访问的功能。MFC类具有继承关系,有虚拟函数和动态约束,并提供了MFC的开发模板。4.1MFC概述4.1.1MFC是一个编程框架MFC应用程序框架,简称MFC框架,是由MFC(MicrosoftFoundationClassLibrary)中的各种类结合起来构成的。MFC框架从总体上定义了应用程序的轮廓,并提供了用户接口的标准实现方法,程序员只须通过预定义的接口把具体应用程序特有的东西填入这个轮廓,就能建
2、立Windows下的应用程序。MicrosoftVisualC++提供了相应的工具来完成这个工作:用应用程序向导(AppWizard)可以生成应用程序的骨架文件(代码和资源等);用资源编辑器可以直观地设计用户接口;用类向导(ClassWizard)可以将代码添加到骨架文件;用编译器可以通过类库实现应用程序特定的逻辑。MFC实现了对应用程序概念的封装,把类、类的继承、动态约束、类的关系和相互作用等封装起来。1.MFC类库封装的内容(1)对Win32应用程序编程接口的封装MFC将每一个Windows对象封装成一个相应的C++对象。(2)对应用程序概念的封装使用SD
3、K编写Windows应用程序时,总要定义窗口过程,注册WindowsClass,创建窗口等等,要做许多处理工作。MFC封装了这些处理,替程序员完成这些工作。(3)对COM/OLE特性的封装OLE(对象的链接与嵌入)建立在COM(组件对象模型)之上,由于支持OLE的应用程序必须实现一系列的接口(Interface),因而相当繁琐。MFC的OLE类封装了OLEAPI大量的复杂工作,提供了实现OLE的更高级接口。(4)对ODBC功能的封装MFC封装了ODBCAPI的大量的复杂的工作,形成了与ODBC之间接口的高级C++类,提供了一种方便的访问数据库的编程模式。2.M
4、FC类的继承关系MFC将众多类的共同特性抽象出来,设计出一些基类,作为实现其他类的基础。有两个类十分重要。CObject是MFC的根类,绝大多数MFC类是从它派生的。CObject实现了一些重要的特性,包括动态类信息、动态创建、对象序列化、对程序调试的支持等等。所有从CObject派生的类都将具备或者可以具备CObject所拥有的特性。另一个是CCmdTarget类,它是从CObject派生的。CCmdTarget类通过进一步封装一些属性和方法,提供了消息处理的架构。在MFC中,任何可以处理消息的类都是从CCmdTarget类派生的。针对每种不同的对象,MFC
5、都设计了一组类对这些对象进行封装,每一组类都有一个基类,从基类派生出众多更具体的类。这些对象包括以下种类:窗口对象,基类是CWnd;应用程序对象,基类是CwinThread;文档对象,基类是Cdocument,等等。程序员可以结合自己的实际,从适当的MFC类中派生出自己的类,实现特定的功能,达到自己的编程目的。3.虚拟函数和动态约束MFC建立了消息映射机制,以一种富有效率、便于使用的手段解决消息处理函数的动态约束问题。这样,通过虚拟函数和消息映射,MFC类提供了丰富的编程接口。程序员在继承基类的同时,可以把自己实现的虚拟函数和消息处理函数嵌入MFC的编程框架。
6、MFC编程框架将在适当的时候、适当的地方来调用程序的代码。4.MFC的开发模板MFC实现了对应用程序概念的封装,实现了类、类的继承、动态约束、类的关系和相互作用的封装。这样封装的结果是为程序员提供了一套开发模板,罗列在应用程序向导AppWizard中。针对不同的应用和目的,程序员可以采用不同的模板。例如,SDI单文档应用程序模板,MDI多文档应用程序模板,规则DLL应用程序模板,扩展DLL应用程序模板,OLE/ActiveX应用程序模板,等等。这些模板都采用以文档-视为中心的思想,每个模板都包含一组特定的类。总之,MFC封装了Win32API,OLEAPI,O
7、DBCAPI等底层函数的功能,并提供更高一层的接口,简化了Windows编程。同时,MFC支持对底层API的直接调用。这种简化体现在MFC提供了一个Windows应用程序开发模式:MFC框架完成对程序的控制,通过预定义或实现了许多事件和消息处理,来完成大部分编程任务。MFC框架处理大部分事件,不依赖程序员的代码;程序员的代码集中用来处理应用程序特定的事件。4.1.2典型的MDI应用程序的构成用AppWizard产生一个没有OLE等支持的MDI工程,工程名叫T。AppWizard会自动创建一系列文件,构成一个应用程序骨架。这些文件分为四类:头文件(.h),实现文
8、件(.cpp),资源文件(.rc),模
此文档下载收益归作者所有