MFC單文檔框架分析及執行流程(轉)


原文轉自 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種單文檔的執行過程

 

學習很枯燥,以前學習的時候草草的學習完,但是時間久了,知識卻都忘記了,所以不管如何,既然選擇了就認真的學習下去。當某日你在回首的時候,別有一番滋味

 

人生中必須有自己必須要堅持的信念,而我的就是“人生為棋,我願為卒,行動雖慢,誰曾見我退過一步”。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM