凝聚性強、組織化強的類庫就是Application Framework。一組合做無間的對象,彼此藉消息的流動而溝通,而且互相調用對方的函數以求完成任務,這就是Application Framework。函數
Application Framework是一組超級的類庫,可以被稱爲Framework者必須是其中的類性質緊密咬合,互相呼應。spa
絕大部分類庫,每每以一個或兩個類,做爲其它絕大部分類的基礎,MFC也同樣。CObject是萬類之首,凡派生自CObject者,得以繼承數個面向對象重要性質,包括RTTI(運行時類型識別)、Persistence(對象保存)、Dynamic Creation(動態建立)、Diagnostic(錯誤診斷)。指針
MFC支持的數據處理類(collection classes)有:對象
異常處理有關的MFC類有如下11種:blog
凡派生自CWnd的類才能收到WM_窗口消息(WM_COMMAND除外)。繼承
所謂窗口handle和C++對象結盟,其實是CWnd對象有一個成員變量m_hWnd,就放着對應窗口handle。因此,只要有CWnd對象或CWnd對象指針,就能夠得到其窗口handle。get
HWND hWnd = pWnd->m_hWnd;io
CCmdTarget是CWnd的父類。派生自它,類纔可以處理命令消息WM_COMMAND。這個類是消息映射以及命令消息傳遞的大部分關鍵。class
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獨特的數據類型: