天天看點

MFC架構程式剖析

1、MFC(Microsoft Foundation Class 微軟基本類庫)

(1)每一個MFC程式有且僅有一個從應用程式類(CWinApp)派生的類,每一個MFC程式執行個體有且僅有一個該派生類的執行個體化對象。

(2)Afx字首的函數代表應用程式架構函數。在MFC中為全局函數,可以在程式的任何地方調用。

WinMain—> AfxWinMain(WINMAIN.CPP裡包括該函數的定義)

           AfxGetThread(THRDCORE.CPP)

           AfxGetApp(AFXWIN1.INL)

CMainFrame::PreCreateWindow—>CFrameWnd::PreCreateWindow(WINFRM.CPP)

CMainApp派生于CWinThread類

CFrameWnd派生于CWnd類

視窗建立功能是由CWnd類的CreateEx(聲明AFXWin.h,定義WINCORE.CPP)函數實作的。

CFrameWnd類的LoadFrame函數調用CFrameWnd的Create(聲明AFXWin.h,定義WINCORE.CPP)函數,Create函數内部調用CWnd的CreateEx函數

消息循環

CWinThread類Run函數完成

AfxWinMain函數中調用Run函數(定義THRDCODE.CPP)

2、視窗類,視窗類對象,視窗

聯系:c++視窗類對象内部定義一個視窗句柄變量,儲存了與這個c++視窗類對象相關的那   個視窗句柄。

差別:視窗銷毀,對應的視窗類對象銷毀與否關鍵看其生命周期是否結束。

      視窗類對象銷毀,與之對應的視窗也銷毀。

3、視類視窗與架構視窗。

架構視窗:菜單欄、标題欄都位于非客戶區

          工具欄位于客戶區。顯示的按鈕會占領工具欄的地方。

視類視窗:顯示的按鈕會直接在客戶區,不會占領非客戶區的地方。

本文轉自 韬光星夜 51CTO部落格,原文連結:http://blog.51cto.com/xfqxj/476987,如需轉載請自行聯系原作者

上一篇: ansible小技巧
下一篇: 文本編輯

繼續閱讀