【筆記】《深入淺出MFC》第5章 總觀Application Framework

來源:互聯網
上載者:User

標籤:

凝聚性強、組織化強的類庫就是Application Framework。一組合作無間的對象,彼此藉訊息的流動而溝通,並且互相調用對方的函數以求完成任務,這就是Application Framework。

Application Framework是一組超級的類庫,能夠被稱為Framework者必須是其中的類性質緊密咬合,互相呼應。

絕大部分類庫,往往以一個或兩個類,作為其它絕大部分類的基礎,MFC也一樣。CObject是萬類之首,凡派生自CObject者,得以繼承數個物件導向重要性質,包括RTTI(運行時類型識別)、Persistence(對象儲存)、Dynamic Creation(動態建立)、Diagnostic(錯誤診斷)。

MFC支援的資料處理類(collection classes)有:

異常處理有關的MFC類有以下11種:

凡派生自CWnd的類才能收到WM_視窗訊息(WM_COMMAND除外)。

所謂視窗handle和C++對象結盟,實際上是CWnd對象有一個成員變數m_hWnd,就放著對應視窗handle。所以,只要有CWnd對象或CWnd對象指標,就可以獲得其視窗handle。

HWND hWnd = pWnd->m_hWnd;

CCmdTarget是CWnd的父類。派生自它,類才能夠處理命令訊息WM_COMMAND。這個類是訊息映射以及命令訊息傳遞的大部分關鍵。

Document/View的觀念是希望把資料的本體和資料的顯示分開處理。由於檔案產生之際,必須動態建立Document/View/Frame三種對象,所以又必須由所謂的Document Template管理之。Document Template扮演黏膠的角色,把Document 和View 和其Frame(外框視窗)膠黏在一塊兒。

CDocument:當你為自己程式由CDocument派生出一個子類後,應該在其中加上成員變數,以容納檔案資料;並加上成員函數,負責修改檔案內容以及讀寫檔案。讀寫檔案由虛函數Serialize負責。

下面是幾個常見的Afx全域函數:

CObject和CRuntimeClass中封裝了數個所謂的object services,包括“取得運行時的類資訊(RTTI)”、Serialization(檔案讀寫)、動態產生對象等等。所有派生自CObject的類,都繼承這些機能。

MFC針對這些機能定義了一些宏:

MFC的訊息映射與命令傳遞由以下宏完成:

 

MFC的大部分資料類型和一般的Win32程式所用的相同,下面是共用的資料類型:

下面是MFC獨特的資料類型:

【筆記】《深入淺出MFC》第5章 總觀Application Framework

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.