常用的MFC类及其作用.docVIP

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

常用的MFC类及其作用 分类: MFC基础类专区 2008-10-14 11:16 445人阅读 评论(1) 收藏 举报 1.CRuntimeClass结构 ? 继承自CObject的类都有一个与它相关的CRuntimeClass结构,用来在运行时获得对象以及其基类的信息。 ? 要使用CRuntimeClass结构,必需借助于RUNTIME_CLASS()宏和其他有关运行时类型识别的宏。 ? 2.CObject ? CObject类的作用: ? a.对象诊断:MFC提供了两种对象的诊断机制,一种是利用成员含数AssertValid进行对象有效性检查,这样可以使类在继续运行以前对自已进行正确性检查。另一种是利用成员含数Dump输出对象的数据成员的值,诊断信息以文本形式放入一个数据流中,用于调试器的输出窗口信息显示。这两种诊断只能用于Debug版的?应用程序。 ? b.CObject类提供了GetRuntimeClass与IsKindOf两个成员含数来支持运行时类型识别。GetRunntimeClass根据对象的类返回一个CRuntimeClass结构的指针,它包含了一个类的运行信息,含数IsKindOf用于测试对象??? 与给定类的关系。 ? c.提供对象的序列化。必须在类的定义中包含DECLARE_SERIAL宏,并且在类的实现文件中加入包含IMPLEMENT_SERIAL宏. ? 3.CCmdTarget 该类直接从CObject类派生而来. ? 它负责将消息发送到能够响应这些消息的对象。它是所有能实行消息映射MFC类的基类,如??? CWinThread,CWinApp,CWnd,CView,CDocument等类。CCmdTarget类的主要功能包括消息发送,设置光标和支持自动化. ? a.消息发送:MFC应用程序为每个CCmdTarget派生类创建一个称为消息映射表的静态数据结构,该消息映射结构将消息映射到对象所对应的消息处理含数上。 ? b.设置光标:CCmdTarget类定义了3个成员含数用于设置光标,成员含数BeginWaitCursor()将光标改为沙漏形状,提示程序正在进行某种操作。当操作完成时,含数EndWaitCursor()用于将光标改回到?BeginWaitCursor()之前的形状。当处于等待状态时由于某些外部操作改变了光标形状后,含数?RestoreWaitCursor()用于将光标还原为等待状态。 ? c.支持自动化:CCmdTarget类支持程序通过COM接口进行交互操作,自动翻译COM接口的方法。它支持自动化的方法是调用EnableAutomation(),FromIDispatch(),GetIDispatch(),IsResultExpected()和?? OnFinalRelease(). ? 4.CWinThread ? CWinThread类由CCmdTarget派生而来,它的主要工作是创建和处理消息循环。该类除了创建和处理消息循环还可以用来创建多线程。 ? 5.CWinApp ? CWinApp从CWinThread类派生而来. ? CWinApp取代了WinMain主含数在SDK应用程序中的地位。传统SDK应用程序WinMain含数完成的工作由CWinApp的InitApplication(),InitInstance(),和Run()三个成员含数完成。在任何一个MFC应用程序中,此有且仅有一个CWinApp派生类对象,它代表了程序运行的主线程,也代表了应用程序本身。 ? 在MFC中提供了4个含数来处理CWinApp对象,这些含数的返回值会使读者想起Windows的API编程。 ? AfxGetInstanceHandle()为程序提供了类似于HINSTANCE的处理。 ? AfxGetResourceHandle()的返回值也是HINSTANCE,它也可能被转化为HMODULE类型,以便在某些含数中使用 ? AfxGetAppName()会返回一个字符串指针,在调用API的CreateWindow()含数时,该字符串是作为szTitle参数?而使用的。 ? AfxGetApp()会返回一个指向应用程序类实例的指针,从而在程序的任何地方都可以访问到应用程序的公共成员 ? AfxGetMainWnd()返回CWnd指针 ? AfxGetThread()用于获得CWinThread对象指针 ? 6.CWnd类 ? CWnd类由CCmdTarget类直接派生而来,CWnd类是MFC中最基本的GUI对象,也是功能最完善,成员含数最多的MFC类。 ? 在CWnd类中,包含一个m_hWnd,该变量用于存放供API含数调用的窗口句柄。用CDialog类所创建的对话框和在Windows中常

文档评论(0)

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

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

1亿VIP精品文档

相关文档