天天看點

Win32 與MFC

Win32:

         Win32函數式程式設計,視窗體系,消息統一傳入反應函數處理

MFC:

        基于WIN32 API封裝的架構類庫集合, Afx是代号,

        CWinThead  有活動視窗和 主視窗,CWnd * m_pMainWnd

                                                               CWnd * m_pActiveWnd

        每個CWnd的子類 CFrameWnd又有ActiveView 視窗中(上)可以有多個Cwnd(View 視窗(CView Ctoolbar)

mfc類圖:

Win32 與MFC

MFC視窗及線程系統:

      線程本線程中Afx有效,

      視窗采有父子類容器關系

     一線程 ->多視窗樹- >視窗管理消息,視窗樹有一定順序進行消息傳遞單一處理原則(一個消息隻有一個處理函數響應。

通過分析MFC的源代碼,我們可以得到WM_COMMAND的消息響應順序如下:

多文檔架構中,有打開的文檔時:視圖 > 文檔 > 子架構視窗 > 應用程式 >主架構視窗

多文檔架構在沒有打開文檔時,應用程式和主架構視窗的順序相反:主架構視窗 > 應用程式

在單文檔架構應用程式中,因為沒有子架構視窗,是以順序應該是:視圖 > 文檔 >主架構視窗> 應用程式。無論有沒有打開文檔,主架構視窗都比應用程式類更優先。

 總結:

        MFC是win32 api的類化封裝,帶自己的MFC視窗消息機制和父子視窗機制。