- 1、本文档共80页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
应用程序框架结构类 MFC消息种类 消息机制是 Windows应用程序的核心,MFC中的消息可以分为: ● Windows消息 ●控件通知消息 ●定时消息 ●命令消息 Windows消息 ● Windows消息通常指以WM开头的消息,但WM_COMMAND除外。 ●键盘消息和鼠标消息都属于Windows消息,Windows消息由窗口和视图进行处理。 ● Windows消息通常带有若干个参数传递给消息处理函数,这些参数为处理函数正确地处理消息提供了充分的信息。 定时消息 ●定时消息也是Windows的一类重要消息。 ●当需要应用程序每隔一个指定的时间间隔便执行某一特定操作时,就需要使用定时消息WM_TIMER。 ●在进行定时操作时,用户需要调用SetTimer函数创建一个定时器,并设置定时器的事件标志nIDEvent及时间间隔nElapse,然后编写消息WM_TIMER的消息处理函数OnTimer(),实现定时操作。 5 MFC应用程序的运行机制 C程序是从Main()入口 利用win API开发的传统WINDOW应用程序是从winMain()入口 思考:MFC应用程序从哪里入口呢? 因为创建的MFC应用程序中找不到winmain函数。有哪些信誉好的足球投注网站包含winmain函数的文件C:\Program Files\Microsoft Visual Studio\VC98\MFC\SRC\Appmodule.cpp中_tWinMain(winmain的宏定义),可以通过加入断点验证。 5.2 自动调用应用程序框架内的WinMain函数 调用_tWinMain即Winmain() 在Winmain()中调用AfxWinMain()(在C:\Program Files\Microsoft Visual Studio\VC98\MFC\SRC\winmain.cpp AfxWinMain()中调用AfxGetApp(), 建立与theAPP建立关联 注:通过winmain.cpp中AfxWinMain()中的CWinApp* pApp = AfxGetApp(); 注:以AFX开头为MFC框架类函数,任何地方可以用。 5.2自动调用应用程序框架内的WinMain函数 winmain.cpp中AfxWinMain()中调用 pApp-InitApplication()//MFC调用的函数 pThread-InitInstance()//应用程序实例的初始化 cmywin.initinstance pThread-Run()//完成消息循环处理 通过这3个函数完成窗口的定义、注册、创建、更新,消息的处理。 5.2.1 cmywinApp::InitInstance() 提醒:cwinApp::InitInstance()是虚函数,因此调用的是cmywinApp的函数。 InitInstance() 执行过程中完成对窗口的注册、更新。 (1). 注册:Wincore.cpp中调用AfxEndDeferRegisterClass()函数中调用AfxRegisterClass(参数选择) //函数中会根据当时建立的选择来注册窗口类(已经存在很多的窗口类);AfxRegisterClass()中调用了RegisterClass(lpWndClass) 5.2.1 cmywinApp::InitInstance() (2)创建窗口. 调用CmainFrame中的PreCreateWindow()函数// 设断点验证 (3)显示和更新窗口: CMywinApp::InitInstance()继续调用m_pMainWnd-ShowWindow(); m_pMainWnd-UpdateWindow(); 5.3 消息循环处理 winmain.cpp中AfxWinMain() 中调用pThread-Run()完成CWinThread::Run()//消息循环机制 注:CWinThread::Run()在Threadcore.cpp中 5.4 消息处理winproc Wincore.cpp中调用AfxEndDeferRegisterClass()函数中wndcls.lpfnWndProc = DefWindowProc; 向导后的编程 编写一个实现具体功能的MFC应用程序的步骤: 编写一个实现具体功能的MFC应用程序的步骤: ClassWizard: Visual C++ IDE为MFC提供了大量的支持工具,除了MFC AppWizard[exe]向导,还提供了
您可能关注的文档
- 《android项目实例教程第21讲C#.ppt
- 《android项目实例教程第22讲C#.ppt
- 《ANSYS加载与求解.ppt
- 《ANDROID数据存储教程.ppt
- 《Android平台应用软体开发.ppt
- 《APQP教育训练讲义.ppt
- 《APMwithDynatrace.ppt
- 《APQP课程讲义.ppt
- 《APQP讲义.ppt
- 《arcgis教程小型校园GIS查询系统的.ppt
- 人教版数学六年级上册 第一单元 第5课时 分数乘小数.pptx
- 人教版数学六年级上册 第四单元 第3课时 比的应用.pptx
- 人教版数学六年级上册 第五单元 第5课时 圆的面积-2.pptx
- 人教版数学六年级上册 第一单元 第7课时 解决问题-1.pptx
- 人教版数学六年级下册 第二单元 第4课时 利率.pptx
- 人教版数学六年级上册 第一单元 第8课时 解决问题-2.pptx
- 人教版数学六年级下册 第五单元 第2课时 鸽巢问题的一般形式.pptx
- 人教版数学六年级下册 第四单元 整理和复习.pptx
- 人教版数学六年级上册 第一单元 第3课时 分数乘分数-1.pptx
- 人教版数学六年级下册 第六单元复习第2课时 可能性.pptx
文档评论(0)