资 源 简 介
资料详情
一、MFC初始化过程
1、构造全局对象CWinApp
2、WinMain中通过AfxGetApp()得到指向该全局对象的指针pApp
(CWinApp* pApp = AfxGetApp();)
3、调用pApp->InitApplicaTIon()
4、调用pApp->IniTInstance() 在IniTInstance中注册、显示窗口
5、调用run()函数开始消息循环
其中,CWinApp中有一个成员变量m_pMainWnd,在IniTInstance中会new一个CWnd类给这个指针,然后会register并Create这个窗口。在Create中会先调用preCreateWindow函数来根据客户需求设置窗口参数。
再细节一点,在InitInstance中先调用AfxEndDeferRegisterClass注册窗口,然后再调用preCreateWindow。根据孙鑫的视频所讲,一般的顺序应是在preCreateWindow里注册窗口,但是MFC为了一些需要先注册的窗口再调用preCreateWindow。当然这是不影响结果的。