MFC的内部结构

MFC的内部结构

ID:40559363

大小:46.50 KB

页数:9页

时间:2019-08-04

MFC的内部结构_第1页
MFC的内部结构_第2页
MFC的内部结构_第3页
MFC的内部结构_第4页
MFC的内部结构_第5页
资源描述:

《MFC的内部结构》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1.MFC的运行步骤:(这是对于文档视图结构的应用程序的)theApp(theApp())->//应用程序全局对象的构造和内存分配WinMain()->//进入主函数AfxWinMain()->//调用APIInitAplacation()(应用程序的内部管理)->//用于应用程序的内部管理的初始化Initinstance()(theApp)->//初始化应用程序对象应用程序的Initinstance()->//应用程序的初始化(创建和注册窗口类、显示和更新应用程序框架)注册窗口类->AfxEndDeferRegisterClass(

2、)(该函数根据不同的应用程序注册不同的窗口类)->AfxRegisterClass()->CMainFrame::PreCreateWindow()->CFrameWnd::PreCreateWindow()->AfxDeferRegisterClass()(如果没有注册,就注册窗口类;它实际上是AfxEndRegisterClass()的宏)(一般都是在这里注册窗口类,由于文档窗口涉及到文档视图类的管理)->LoadFrame()->//载入框架CFrameWnd::Create()->/CWnd::CreateEx()->//创建

3、应用程序窗口CMainFrame::PreCreateWindow()(实际上该函数是一个虚函数,也就是说如果子类为应用程序定义了该函数,那么它将调用子类的函数,因此,我们可以重载该函数来修改应用程序框架的外观)->//在框架窗口显示之前调用ShowWindow()->UpdateWindow()->//显示和更新消息循环:->CwinThread::Run()->do-while()循环(->PumpMessage()->GetMessage()->TranslateMessage()->DispatchMessage())简单的说

4、就是初始化全局对象进入主函数再进行窗口类的创建和注册并显示,然后进入消息循环。theApp:全局变量或是类对象在程序运行前初始化。即分配内存空间,初始成员。(每一个MFC应用程序都只有一个全局对象theApp对象,我们用该全局对象唯一的表示该应用程序。)下面我们给出这些函数如何跟踪(我的是装在C:盘下的他们都在。。MFCSRC下)WinMain()函数(C:ProgramFilesMicrosoftVisualStudioVC98MFCSRCAPPMODUL.CPP)WinApp(C:ProgramFilesMi

5、crosoftVisualStudioVC98MFCSRCTHRDCORE.CPP)AfxWinMain()(C:ProgramFilesMicrosoftVisualStudioVC98MFCSRCWINMAIN.CPP)intAFXAPIAfxWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPTSTRlpCmdLine,intnCmdShow){ASSERT(hPrevInstance==NULL);intnReturnCode=-1;CWinThread*

6、pThread=AfxGetThread();CWinApp*pApp=AfxGetApp();//AFXinternalinitializationif(!AfxWinInit(hInstance,hPrevInstance,lpCmdLine,nCmdShow))gotoInitFailure;//Appglobalinitializations(rare)if(pApp!=NULL&&!pApp->InitApplication())//C:ProgramFilesMicrosoftVisualStudioVC98MFC

7、includeAFXWIN.H)gotoInitFailure;//Performspecificinitializationsif(!pThread->InitInstance())//C:ProgramFilesMicrosoftVisualStudioVC98MFCincludeAFXWIN.H){if(pThread->m_pMainWnd!=NULL){TRACE0("Warning:Destroyingnon-NULLm_pMainWnd");pThread->m_pMainWnd->DestroyWi

8、ndow();}nReturnCode=pThread->ExitInstance();gotoInitFailure;}nReturnCode=pThread->Run();InitFailure:#ifdef_DEB

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。