1 CWinThread
封裝了對線程的相關操作,關於線程會在以後文章中詳細說明。
常用:
m_pMainWnd 保存指向應用程序的主窗口的指針
虛函數InitInstance——創建實例,應用程序重載這個虛函數,進行系統設置,創建運行環境(如主窗口)
虛函數Run——提供UI線程的消息循環,接收、分發消息,但Run很少被重載
虛函數ExitInstance——退出消息循環時執行,做最後的清理工作,可以重載爲線程做相關的清理工作
2 CWinApp
CWinApp對象是一個應用程序實例,該類提供了初始化和運行應用程序實例的相關成員函數
每個MFC應用程序只能包含一個app實例,這個app實例是全局的,它和其他C++全局變量一起產生,且在WinMain函數執行之前。
對於自己特定的應用程序,你需要重載InitInstance函數
MFC提供了以下全局函數,用於訪問你的app實例和其他全局信息:
--AfxGetApp 獲得指向CWinApp對象的指針。
--AfxGetInstanceHandle 獲得當前應用程序實例的句柄。
--AfxGetResourceHandle 獲得應用程序資源的句柄。
--AfxGetAppName 獲得一個字符串指針,其中包含了應用程序的名字。
關於MFC程序的初始化過程
——>(理解一)
SDI程序CMyApp
1 定義全局對象theApp (會調用父類CWinApp的構造函數)
2 進入WinMain (AfxGetApp獲取子類指針pApp)
3 pApp->InitApplication(); (調用父類CWinApp::InitApplication)
4 pApp->InitInstance();
(調用子類CMyApp::InitInstance----->引發CMyFrameWnd::CMyFrameWnd----->
引發CFrameWnd::Create-----> 引發CWnd::CreateEx----->引發CFrameWnd::PreCreateWindow)
5 m_pMainWnd->ShowWindow(); // 顯示窗口
6 m_pMainWnd->UpdateWindow(); //更新窗口
7pApp->Run(); //開始消息處理
推薦文章:
MFC程序生死 http://www.moon-soft.com/doc/6474.htm 簡述的啊~
MFC程序的來龍去脈 http://hi.baidu.com/quanhaili/blog/item/221459323635c74bac4b5f39.html