MFC启动过程
1. 首先说一下MFC程序的启动过程.
每个MFC程序都有一个全局的应用程序类的对象, 在面向对象程度非常好的MFC程序中, 应该只有这一个全局的对象.MFC应用程序启动时, 首先创建这个应用程序对象, 比如对象名为theApp, 这时将调用这个对象的构造函数来初始化theApp.然后由应用程序框架调用MFC提供的AfxWinMain主函数. 在这个主函数中, 首先获得应用程序对象theApp的指针, 然后通过这个指针调用程序程序对象的有关函数, 来完成程序的初始化和启动工作, 最后调用Run函数, 进入消息循环. 主要代码如下:
- CTheApp theApp;
- BOOL CTheApp::InitInstance()
- {
- ....
- m_pMainWnd = new CTheWindow();//调用窗口类的构造函数来创建一个窗口
- m_pMainWnd->ShowWindow(SW_SHOW);//显示窗口
- m_pMainWnd->UpdateWindow();//更新窗口上的元素
- return TRUE;
- }
- //
- int AFXAPI AfxWinMain()
- {
- CWinThread *pThread = AfxGetThread();//获取主线程指针
- CWinApp *pApp = AfxGetApp();
- AfxWinInit();