windows的运行机制.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程序的来龙去脉 程序的诞生 应用对象产生,内存于是获得配置 AfxWinMain执行AfxWinInt,进行初始化设置 AfxWinMain执行InitApplication,是个虚函数,通常不改写它 AfxWinMain执行InitInstance,是虚函数,我们改写它 在InitInstance中执行ProcessShellCommand(cmdInfo)实现窗口的注册,创建。 回到InitInstance中继续执行ShowWindow ,显示窗口 执行UpdateWindow,发出WM_PAINT消息。 回到AfxWinMain,执行Run,进入消息循环。 MFC程序的运行过程 MFC程序的来龙去脉 程序开始运行 程序获得WM_PAINT消息(Run()中的::PeekMessage) WM_PAINT经由::DispatchMessage送到窗口函数CWnd::DefWindowProc中 CWnd::DefWindowProc将消息传递给消息映射表(Message Map) 传递过程中发现有相符项目,于是调用项目中对应的函数,此函数是应用程序利用BEGIN_MESSAGE_MAP和END_MESSAGE_MAP之间的宏设立起来的。 MFC程序的来龙去脉 程序的死亡 单击【File/Close】,于是发出WM_CLOSE消息 框架并没有设置WM_CLOSE消息处理函数,于是交给默认的处理程序。 默认函数对于WM_CLOSE消息的处理方式是调用 ::DestoryWindow,并因而发出WM_DESTROY消息。 默认的WM_DESTROY处理方式是调用::PostQuitMessage,因此发出WM_QUIT消息。 CWinApp::Run收到WM_QUIT消息会结束其内部消息循环 最后回到AfxWinMain,执行AfxWinTerm,结束程序。 单文档应用程序WinGreet中使用到的类 文档模板类:直接使用,管理文档、视图和框架 文档类:负责数据结构与文件操作 应用类 框架类:主窗口 视图类:负责数据的显示与打印 状态栏和工具栏直接使用 CWinApp CDocument CView CMainFrame GetActiveView GetParentFrame 或 m_pMainWnd AfxGetApp 或 theApp GetActiveDocument AfxGetMainWnd AfxGetMainWnd GetDocument 从CView、CDocument、CMainFrame或其他类中访问应用类,用AfxGetApp 或 theApp MFC程序的运行机制 作业上交方式 你的工程名为 学号_*(*分别用1,2,3等代表第一次作业) 例如: 学号为1108320126,则第一次作业的工程名为1108320126_1,则编译链接后会形成子目录1108320126_1 ,其中该目录下会有debug子目录, 将debug子目录删除,然后将1108320126_1整个目录压缩成一个文件发到邮箱。 SDK程序的运行过程 进入WinMain后,首先设计窗口类,注册窗口、创建窗口、然后显示窗口、更新窗口、最后进入消息循环,将消息路由到我们的窗口过程函数中去处理 。 MFC程序的启动与死亡顺序 单文档应用程序WinGreet中使用到的类 文档模板类:直接使用,管理文档、视图和框架 文档类:负责数据结构与文件操作 应用类 框架类:主窗口 视图类:负责数据的显示与打印 状态栏和工具栏直接使用 MFC程序的启动 1、创建Application?object对象 theApp 程序一开始生产一个(且只有一个)应用类对象 theApp,也即一个CWinApp对象,这个全局对象一产生,便执行其构造函数,导致其基类CWinApp类的构造函数被调用。该函数定义于APPCORE.CPP第75行,因此,CWinApp之中的成员变量将因为theApp这个全局对象的诞生而获得配置与初值 在SDK编程时,是通过一个应用程序的实例号来标示一个应用程序的。在基于MFC应用程序中,是通过产生一个应用类的对象来唯一标识我们的整个应用程序。 MFC程序的启动 2、WinMain登场 ????用SDK编程序时,程序的入口点是WinMain函数,而在MFC程序里我们并没有看到WinMain函数,?原来她是被隐藏在MFC代码里面了。当theApp配置完成后,WinMain登场。MFC早已准备好并由链接器直接加到应用程序代码中了,原来她在appmodul.cpp 里面。 MFC程序的启动 APPMODUL.CPP摘出来的代码 ?_tWinMain(HINSTANCE?hInstance,?HIN

文档评论(0)

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

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

1亿VIP精品文档

相关文档