文件、檢視和架構
MFC 架構的核心是文件和檢視的概念。 文件是一種在編輯工作階段與使用者進行互動的資料物件。 它是由 [檔案] 功能表上的 [ 新增] 或 [開啟 ] 命令 所建立,而且通常會儲存 在檔案中。 (衍生自 類別 CDocument
的標準 MFC 檔與使用中檔和 OLE 複合檔案不同。檢視是使用者與檔互動的視窗物件。
執行中應用程式的主要物件如下:
執行緒物件
如果您的應用程式建立個別的執行執行緒,例如,若要在背景執行計算,您將使用衍生自
CWinThread
的類別。CWinApp
本身衍生自CWinThread
,代表應用程式中執行的主要執行緒(或主要進程)。 您也可以在次要執行緒中使用 MFC。應用程式物件
您的應用程式類別 (衍生自
CWinApp
) 會控制上述所有物件,並指定應用程式行為,例如初始化和清除。 應用程式唯一的應用程式物件會建立及管理應用程式所支援任何資料類型的文件範本。一個或多個文件範本
文件範本會協調文件、檢視和框架視窗的建立。 衍生自 類別
CDocTemplate
的特定檔範本類別,會建立及管理一種類型的所有開啟檔。 支援多種文件類型的應用程式擁有多個文件範本。 針對 SDI 應用程式使用類別 CSingleDocTemplate ,或針對 MDI 應用程式使用 類別CMultiDocTemplate
。框架視窗
檢視會顯示在「檔框架視窗」內。在 SDI 應用程式中,檔框架視窗也是應用程式的「主框架視窗」。 在 MDI 應用程式中,文件視窗是會顯示在主框架視窗內的子視窗。 您衍生的主框架視窗類別會指定樣式和包含檢視之框架視窗的其他特性。 如果您需要自訂框架視窗,請衍生自
CFrameWnd
以自訂 SDI 應用程式的檔框架視窗。 衍生自CMDIFrameWnd
以自訂 MDI 應用程式的主框架視窗。 此外,從 衍生類別CMDIChildWnd
,以自訂應用程式支援的每個不同 MDI 檔框架視窗。一個或多個文件。
您的檔類別 (衍生自
CDocument
) 會指定應用程式的資料。如果您想要應用程式中的 OLE 功能,請根據您需要的功能類型,從
COleDocument
或其其中一個衍生類別衍生檔類別衍生。一個或多個檢視。
您的檢視類別 (衍生自
CView
) 是使用者的「資料視窗」。檢視類別可控制使用者如何查看檔的資料,並與它互動。 在某些情況下,您可能想要讓文件擁有多個資料檢視。如果您需要捲動,請衍生自
CScrollView
。 如果您的檢視具有在對話範本資源中配置的使用者介面,請衍生自CFormView
。 針對簡單的文字資料,請使用或衍生自CEditView
。 對於表單型資料存取應用程式,例如資料輸入程式,衍生自CRecordView
(適用于 ODBC)。 此外,也有類別CTreeView
、CListView
和CRichEditView
。
在執行中的應用程式中,這些物件會一起回應使用者動作,並透過命令和其他訊息繫結程序在一起。 單一應用程式物件會管理一個或多個文件範本。 每個文件範本會建立和管理一個或多個文件 (根據應用程式為 SDI 還是 MDI 而定)。 使用者透過框架視窗中的檢視來檢視和操作文件。 下圖顯示 SDI 應用程式中這些物件之間的關聯性。
執行中 SDI 應用程式內的物件
這一系列的其他文章說明架構工具、MFC 應用程式精靈和資源編輯器如何建立這些物件、它們如何一起運作,以及如何在您的程式設計中使用它們。 視窗物件 和檔/檢視架構 會 更詳細地討論檔、檢視和框架視窗。