windows+sdk编程入门介绍.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2.MFC 的结构层次 Visual C++发展至今(Visual 6.0: MFC42.dll, Visual C++.Net: MFC 7.0),MFC类库越来越强大,其基本层次结构如图5所示,箭头的方向是从派生类指向基类。 CObject:是MFC提供的绝大多数类的基类。该类完成动态空间的分配与回收,支持一般的诊断、出错信息处理和文档序列化等。 CCmdTarget类:主要负责将系统事件(消息)和窗口事件(消息)发送给响应这些事件的对象,完成消息发送、等待和派遣(调度)等工作,实现应用程序的对象之间协调运行。 CWinApp类:是应用程序的主线程类,它是从CWinThread类派生而来。CWinThread类用来完成对线程的控制,包括线程的创建、运行、终止和挂起等。 CDocument类:文档类,包含了应用程序在运行期间所用到的数据。 CWnd类:是一个通用的窗口类,用来提供Windows 中的所有通用特性。 CView :是用于让用户通过窗口来访问文档以及负责文档内容的显示。 CFrameWnd 类:是从 CWnd 继承来的,并实现了标准的框架应用程序。 CDialog 类:用来控制对话框窗口。 3.虚拟函数和动态约束 MFC以“C++”为基础,自然支持虚拟函数和动态约束。但是作为一个编程框架,有一个问题必 须解决:如果仅仅通过虚拟函数来支持动态约束,必然导致虚拟函数表过于臃肿,消耗内存, 效率低下。例如,CWnd封装 Windows窗口对象时,每一条Windows消息对应一个成员函数, 这些成员函数为派生类所继承。如果这些函数都设计成虚拟函数,由于数量太多,实现起来不 现实。于是,MFC建立了消息映射机制,以一种富有效率、便于使用的手段解决消息处理函数 的动态约束问题。 这样,通过虚拟函数和消息映射,MFC类提供了丰富的编程接口。程序员继 承基类的同时,把自己实现的虚拟函数和消息处理函数嵌入MFC的编程框架。MFC编程框架将 在适当的时候、适当的地方来调用程序的代码。 4.MFC的宏观框架体系 如前所述,MFC实现了对应用程序概念的封装,把类、类的继承、动态约束、类的关系和相互作用等封装起来。这样封装的结果对程序员来说,是一套开发模板(或者说模式)。针对不同的应用和目的,程序员采用不同的模板。例如,SDI应用程序的模板,MDI应用程序的模板,规则DLL应用程序的模板,扩展DLL应用程序的模板,OLE/ACTIVEX应用程序的模板,等等。这些模板都采用了以文档-视为中心的思想,每一个模板都包含一组特定的类。典型的MDI应用程序的构成将在下一节具体讨论。为了支持对应用程序概念的封装,MFC内部必须作大量的工作:例如,为了实现消息映射机制,MFC编程框架必须要保证首先得到消息,然后按既定的方法进行处理。又如,为了实现对DLL编程的支持和多线程编程的支持,MFC内部使用了特别的处理方法,使用模块状态、线程状态等来管理一些重要信息。虽然,这些内部处理对程序员来说是透明的,但是,懂得和理解MFC内部机制有助于写出功能灵活而强大的程序。 总之,MFC封装了Win32 API,OLE API,ODBC API等底层函数的功能,并提供更高一层的 接口,简化了Windows编程。同时,MFC支持对底层API的直接调用。MFC提供了一个Windows 应用程序开发模式,对程序的控制主要是由MFC框架完成的,而且MFC也完成了大部分的功能 ,预定义或实现了许多事件和消息处理,等等。框架或者由其本身处理事件,不依赖程序员的 代码;或者调用程序员的代码来处理应用程序特定的事件。MFC是C++类库,程序员就是通过 使用、继承和扩展适当的类来实现特定的目的。例如,继承时,应用程序特定的事件由程序员 的派生类来处理,不感兴趣的由基类处理。实现这种功能的基础是C++对继承的支持,对虚拟函 数的支持,以及MFC实现的消息映射机制。 2、您的第一个MFC应用程序 :for example:第五讲\hello_mfc.dsw ?应用程序类CWinApp 在MFC中,应用程序类封装了一个Windows应用程序的初始化、运行和终止。每一个MFC应用程序都必须包括一个从CWinApp派生的应用程序类。一个MFC应用程序可以有且仅有一个应用程序对象,此对象必须在窗口被创建之前进行声明且必须是全局的。类CWinApp从类CWinThread派生,它代表了应用程序的主执行线程。 同其它的任何Windows应用一样,框架应用程序仍然具有一个WinMain函数。但是,在由AppWizard生成的应用程序框架中,我们却找不到对WinMain函数的声明或定义。在MFC应用程序中,WinMain函数是由类库提供的,它在应用程序

文档评论(0)

cyx + 关注
实名认证
内容提供者

装饰装修木工持证人

该用户很懒,什么也没介绍

领域认证该用户于2023年05月15日上传了装饰装修木工

1亿VIP精品文档

相关文档