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