欢迎来到天天文库
浏览记录
ID:62033777
大小:115.50 KB
页数:4页
时间:2021-04-15
《MFC单文档窗体类的创建过程.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、MFC单文档创建完成后的类视图的关系共有类:基类CAboutDlg:CDialogCMainFrame:CFrameWndCMyMFCTestApp:CWinAppCMyMFCTestDoc:CDocumentCMyMFCTestView:CViewMFC类的继承图表CWnd封装了关于窗口操作的方法和属性等;一、MFC唯一的一个入口点//唯一的一个CMyMFCTestApp对象CMyMFCTestApptheApp;它是一个全局对象,当程序在被编译的时候编译器会首先对全局变量或者对象分配类存空间。当创建theApp这个应用程序对象的时候就会调用它的构造函数,根
2、据类的继承原理机制,同时会调用CMyMFCTestApp类的基类的构造函数然后进入应用程序的WinMain()函数二、Microsoft提供的部分MFC的源代码在vs工具安装目录下E:VS2008VCatlmfcsrc\mfc1、WinMain函数是appmodul。cpp文件中_tWinMain(是WinMain的一个宏)方法CWinApp是在appcore。cpp文件中其构造函数带有一个具有缺省值的参数在构造CMyMFCTestApp的时候可以不用传递参数。2、pThreadState—>m_pCurrentWinThread= this将CMyM
3、FCTestApp的指针传递AfxWinMain是在winmain。cpp文件中CWinApp*pApp =AfxGetApp();获得CMyMFCTestApp派生类的一个指针3、在AfxWinMain方法中调用了三个方法完成了创建窗体的几个步骤:pApp—>InitApplication()MFC内部管理所调用的一个函数pThread-〉InitInstance() 是一个虚函数根据多态性原理这是调用的派生类的方法注册窗口时winfrm.cpp文件中CFrameWnd::LoadFrame调用AfxEndDeferRegisterClass()AfxReg
4、isterClass()它在wincore。cpp文件中4、CFrameWnd::PreCreateWindow(虚函数)在winfrm。cpp文件中afximpl.h中AfxDeferRegisterClass(fClass)是AfxEndDeferRegisterClass(fClass)定义的宏5、创建窗口winfrm。cpp文件中CFrameWnd::LoadFrame调用CFrameWnd::Create调用wincore.cpp中CreateEx中可以再次调用PreCreateWindow以改变窗体6、窗体的显示是在CMyMFCTestApp类中的
5、CMyMFCTestApp::InitInstance中m_pMainWnd—>ShowWindow(SW_SHOW);ﻩm_pMainWnd—>UpdateWindow();7、消息循环WinMain中会调用thrdcore.cpp中的nReturnCode=pThread—>Run();完成消息循环
此文档下载收益归作者所有