MFC 架構的核心是文件和檢視的概念。 檔是使用者在編輯會話中互動的數據物件。 它是由 [檔案] 功能表上的 [新增] 或 [開啟] 命令所建立,而且通常會儲存在檔案中。 (衍生自 類別 CDocument 的標準 MFC 文件與 Active 文件和 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 應用程式精靈和資源編輯器如何建立這些對象、它們如何一起運作,以及如何在程式設計中使用它們。 在視窗物件和文件/檢視架構中,將更詳細地討論文件、檢視和框架視窗。