MFC 教程 第3章 MFC基础.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MFC 教程 第3章 MFC基础

第3章 MFC应用程序框架 早期的MFC中,应用程序的框架比较简单,即在应用程序类中嵌入一个框架窗口对象就构成了程序的框架.但是,由于它体现了MFC程序的主体结构,并且,它的一些类仍然是当前复杂应用程序框架的基本类,因此,从学习的角度说,了解早期的MFC应用程序框架仍然是很有必要的. 3.1? 早期的应用程序框架 及其MFC类 应用程序的框架由两个对象组成:应用程序类CWinApp的派生类对象和框架窗口类CFrameWnd的派生类对象,后者作为一个成员对象嵌在前者之中 。 CMyApp::InitInstance() { CMyWnd*pMainWnd=new CMyWnd; pMainWnd-Create(0,MFC); pMainWnd-ShowWindow(m_nCmdShow); pMainWnd-UpdateWindow(); m_pMainWnd=pMainWnd; } CObject类是最主要和最基本的类之一。 CObject类是位于类层次结构最顶层的,绝大多数MFC类都是从CObject类派生出来的。 CWnd类提供了所有窗口类的基本功能。 1.大约三分之一的MFC类都是以此为基类。 2.主要封装了创建、操纵窗口类的API函数, 3.通过消息映射机制隐藏了SDK中使用不便的窗口处理函数,使消息的分发处理更加方便。 命令相关类 CCmdTarget: 为CObject的派生类,为所有具有消息映射属性的类的基类。 一般不对CCmdTarget类操作,常操作由其派生出来的一些类: 框架窗口类 CFrameWnd 它或它的派生类对象就是应用程序的主窗口。在设计应用程序时,用这个类或其派生类类创建应用程序主窗口。 3.1.3 CWinApp类 CWinApp类具有Cobject类和CCmdTarget类的全部特性,CWinThread是为了支持Windows多线程工作方式而设计的一个类。MFC把原来在CWinApp中定义的CWnd*类型的数据成员 m_pMainWnd(程序的主窗口对象)放在CWinThread中定义了。 CWinApp类中还有3个可以重写的虚成员函数: InitApplication、InitInstance和Run. 其中InitInstance是为程序创建窗口和显示窗口所设置的。因此,必须在CWinApp类的基础上派生出自己的应用程序类,并对函数InitInstance进行重写,实现对窗口的不同要求。 class MyApp: public CWinApp { public: BOOL InitInstance(); }; MyApp theApp; BOOL MyApp::InitInstance() { … } 3.2最简单的MFC 程序实例 例3-1 使用早期的MFC应用程序框架设计的一个最简单的Windows应用程序。 3.3 应用程序的文档/视图结构及其框架类 目前,用MFC设计的Windows应用程序几乎都采用文档/视图结构.这种程序框架与简单程序框架之间的重要区别就在于形成应用程序主窗口不只需要一个类的对象,而是需要3个类的对象:框架窗口类CFrameWnd对象作为窗口的框架,视图类CView的对象作为贴附在框架窗口上的用户区,二者共同形成了应用程序的界面。而文档类Cdocument对象则在幕后专门对数据进行存储和管理。 在应用程序类CWinApp中,使用文档模板把上述3个类的对象组装在一起,从而形成一个完整的程序实体。 3.3.1 文档\视图类的基本概念 在文档\视图结构的框架中, 视图类CView类的对象用来显示数据并接受用户操作, 框架窗口类CFrameWnd是视图类对象的容器。 文档类对象在幕后存储和管理数据,因此文档类对象在程序界面上看不到。 3.3.2 文档类CDocument 文档类CDocument对象存储和管理应用程序的数据。 在使用文档/视图结构的程序框架设计程序时,应该在文档类中定义程序所需的数据成员以及他们和外部进行联系的成员函数,数据成员的初始化工作由文档类的构造函数来完成。 例3-2 在文档类中定义数据成员及其成员函数的实例 class CMyDoc:public CDocument { private: int Array[3]; protected: CMyDoc(); DECLARE_DYNCREATE(C

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档