原文轉自 https://blog.csdn.net/u011619422/article/details/40402705
首先來分析一下MFC單文檔類的結構:
它包括如下幾個類:
CAboutDlg : 對話框框類,對應應用程序的“幫助”->“關於”菜單,彈出“關於”對話框。
CxxxApp: 派生自CWinApp , 為應用程序對象,負責應用程序的初始化和退出的清理工作。
CMainFrame: 派生自CFrameWnd類, 為框架窗口對象,對應應用程序的主窗口。
CxxxView: 派生自視圖類CView , 為視圖對象, 對應應用程序的客戶窗口,用來顯示文檔數據。
CxxxDoc: 派生自CDocument文檔類,為文檔對象,儲存於應用程序相關的數據。在應用中沒有直觀的對應關系。
程序的執行過程可以簡單的表示如下:
CWinApp 類創建的實例theApp , 整個程序有且只有一個,一切由它開始,最后以它結束。
Visual c++所產生的代碼首先通過初始數據段來創建一個全局變量,以及建立一些MFC內使用的對象,然后指向CWinApp類的構造函數
一旦所有靜態對象的構造函數都執行完畢,運行是艱苦就會調用WinMain函數,該函數初始化MFC應用,並調用CWinApp的InitInstance函數。
完成了這些工作后,WinMian函數調用CWinApp類的Run函數,通常默認為CWinThread::Run() , 用來得到應用程序的消息循環,或者稱為消息列隊
當應用程序接受到WM_QUIT消息,就意味着程序終止,這時,MFC就會調用CWinApp類的ExitInstance,然后是靜態對象的析構函數,包括CWinApp對象,然后將控制權交還操作系統。
以上就是MFC種單文檔的執行過程
學習很枯燥,以前學習的時候草草的學習完,但是時間久了,知識卻都忘記了,所以不管如何,既然選擇了就認真的學習下去。當某日你在回首的時候,別有一番滋味
人生中必須有自己必須要堅持的信念,而我的就是“人生為棋,我願為卒,行動雖慢,誰曾見我退過一步”。
