VS2013/MFC 程序執(zhí)行流程
創(chuàng)建好一個 MFC 項目以后,如果是第一次創(chuàng)建,或者雖然創(chuàng)建了很多項目,卻并沒有認真分析自動生成的程序代碼,那么就很有必要知道項目的程序框架如何,項目是從哪開始執(zhí)行,到哪終止程序,如何響應消息,如何刷新界面等等問題。
工具/原料
· visual studio 2013
MFC 執(zhí)行流程
1. 每創(chuàng)建一個項目,一般會包含 3 個類,“關于”對話框類、主對話框類以及用于初始化項目的 App 類,假如項目名稱為 Demo,那么這三個類分別為 CAboutDlg、CDemoDlg、CDemoApp。
2. 項目生成后,都會生成一個屬于 CDemoApp 類的 theApp 對象,對本應用程序實例化,這個在 CDemoApp.cpp 文件中定義,創(chuàng)建時調用構造函數(shù) CDemoApp::CDemoApp();這就是程序創(chuàng)建的第一步。
3. 接下來程序會調用 winmain 函數(shù),這個在項目文件中找不到,但可以在 VS2013 的安裝路徑下找到,其函數(shù)聲明為:int AFXAPI AfxWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,_In_LPTSTR lpCmdLine, int nCmdShow);
4. 調用完 winmain 后,就通過 InitInstance()函數(shù)初始化窗口,包括注冊、創(chuàng)建和顯示對話框,InitInstance 函數(shù)是 CDemoApp 類中除構造函數(shù)以外唯一的成員函數(shù)。
一般不需要修改這部分程序,但有些時候可以添加部分代碼,比如需要創(chuàng)建多個對話框時,剛啟動時彈出的對話框(比如用于登錄)不是主對話框,就可以在這個函數(shù)里創(chuàng)建主對話框之前調用登錄對話框,這樣就可以設置啟動時的默認對話框了。
