- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
visualc6.0可视化编程2课件
;实例47 SDI应用程序框架;项目工作区
类视图
文件视图
资源视图
文件组成
StdAfx.h和StdAfx.cpp包含程序预编译的头文件
Resource.h包含所有资源符号定义的标准头文件。
program47.rc包含资源描述信息的资源文件---图标、位图和光标等。
program47.rc2包含不能在集成开发环境中直接编辑的资源
program47.ico是应用程序的图标文件。
program47.bmp是包含工具栏按钮的位图文件,可以在集成环境中进行编辑。
Readme.txt是应用程序描述文件,对AppWizard生成的原文件进行描述;用Developer Studio建立项目Developer Studio会创建很多中间文件;一。应用程序框架;应用程序的体系结构;与基于框架窗口的程序框架有关的 MFC类结构;CCmdTarget类;CWinThread 类;CWinApp类;CWnd类;CFrameWnd类;基于框架窗口的应用程序结构的类关系;程序执行过程;WinMain函数;CWinApp 对象;InitInstance成员函数;Run 及 ExitInstance成员函数;主边框窗口
CProgram47Frame类:此类的对象代表着应用程序的主窗口。它的构造函数调用基类CFrameWnd的Create函数创建具体的窗口结构。
(程序处理举例) CProgram47Frame::OnLButtonDown函数:消息处理机制,当鼠标坐键被按下这一事件被映射到CProgram47Frame的OnLButtonDown函数上,进行消息处理。
视图类
OnPaint()是当视类窗口需要在屏幕上输出时被调用,负责完成窗口的屏幕输出显示工作;
OnPrint()是当打印一页时被调用,负责完成向某页打印纸上打印。这两个函数的缺省实现中包含了对OnDraw(CDC *pDC)的调用。;程序运行过程分析;④CProgram47App::InitInstance成员函数:发现theApp后自动调用重载的虚函数InitInstance来完成主窗口的构造和显示工作。记住这个函数。
⑤CWinApp::Run成员函数:WinMain在调用InitInstance之后紧接着调用Run函数,它被隐藏在基类中负责传递应用程序的消息给相应的窗口。
(完成了windows API 中函数GetMessage(), TranslateMessage()和DispatchMessage()的功能。)
OnIdle()是在Run()的空闲时间得到执行。当OnIdle()接收到消息后,转送到Run()进行处理。
ExitInstance()用于在程序运行实例终止时,进行相关资源的清理及释放。
⑥关闭应用程序:用户关闭应用程序时会有一系列事件发生。首先CProgram47Frame对象被删除,然后退出Run,进而退出WinMain,最后删除CProgram47App对象。 ;程序的死亡:;CWinApp::Run收到WM-QUIT后会结束内部之消息循环,然后调用ExitInstance,这是CWinApp的一个虚拟函数;如果CMyWinApp改写了ExitInstance,那么CWinApp::Run所调用的就是CMyWinApp::ExitInstance,否则就是CWinApp::ExitInstance
最后回到AfxWinMain,执行AfxWinTerm,结束程序。;MFC应用程序编程体现了几个特性:
封装
构成MFC框架的是MFC类库。MFC类库是C++类库。这些类封装了Win32应用程序编程接口、封装了应用程序的概念、封装了OLE特性、封装了ODBC和DAO数据访问的功能等等,分述如下。 ;(1)对Win32应用程序编程接口的封装
用一个C++ Object来包装一个Windows Object。例如:CWnd是一个C++ window object,它把Windows window(HWND)和Windows window有关的API函数封装在C++ window object的成员函数内,后者的成员变量m_hWnd就是前者的窗口句柄。;(2)对应用程序概念的封装
使用SDK编写Windows应用程序时,总要定义窗口过程,登记Windows Class,创建窗口等等。这两个部分其实都有相当程度的不变性,MFC就是把有着相当固定行为的WinMain内部操作封装在CWinApp中;把有着相当固定行为的WndProc内部操作封装在CFrameWnd中。也就是说,CWinApp代表Windows应用程序本体,CFrameWnd代表一个主框窗口。
您可能关注的文档
- Unit_4__Astronomy_Using_language课件.ppt
- Unit_6_-_Business_Email课件.ppt
- Unit_6_S2A-More_reading_Chinese_manned_space_flights_课件.ppt
- Unit_5--1-8课件.ppt
- Unit_6_The_Legacy课件.ppt
- Unit_7_Biography课件.ppt
- Unit_8_The_logistics_operation_process课件.ppt
- Unit_9_On_Becoming_a_Better_Student课件.ppt
- Unit_9_what_is_intelligence_anyway课件.ppt
- universities69课件.ppt
文档评论(0)