天天看點

MFC執行流程

程式的啟動,構造theApp對象,調用父類CWinApp的構造函數。、

  •         将theApp對象的位址儲存到線程狀态資訊中
  •         将theApp對象的位址儲存到子產品狀态資訊中
  •         進入WinMain函數,調用AfxWinMain函數

微軟MFC 有兩個全局變量:

AFX_MODULE_STATE   目前程式子產品狀态資訊

AFX_MODULE_THREAD_STATE  目前程式線程狀态,它儲存在目前程式子產品狀态資訊的一個成員中。

  • AfxGetThread()   全局函數,擷取theApp線程,
  • AfxGetApp() 擷取theApp位址

這兩個函數時全局函數,哪裡都可以調用。 

執行流程:

進入入口函數WinMain

        擷取應用程式類對象theApp的位址

        利用theApp位址調用InitApplication,初始化目前應用程式的資料

        利用theApp位址調用InitInStance函數初始化程式,在函數中我們建立視窗并顯示。

        利用theAPP位址調用CWinApp的Run函數進行消息循環

        如果沒有消息,利用theApp位址調用OnIdle虛函數實作空閑處理

        程式退出利用theApp位址調用ExitInstance虛函數實作退出前的善後處理工作。