文件/檢視架構
根據預設,MFC 應用程式精靈會建立具有檔案類別和檢視類別的應用程式基本架構。 MFC 會將數據管理分成這兩個類別。 檔會儲存數據並管理列印數據,並協調更新數據的多個檢視。 檢視會顯示數據並管理使用者與其互動,包括選取和編輯。
在此模型中,MFC 檔物件會讀取和寫入數據至永續性記憶體。 檔也可以提供數據介面,無論數據位於何處(例如在資料庫中)。 個別的檢視物件會管理數據顯示,從在視窗中轉譯數據到用戶選取和編輯數據。 檢視會從檔取得顯示數據,並傳回檔的任何數據變更。
雖然您可以輕鬆地覆寫或忽略檔/檢視區隔,但在大部分情況下,有令人信服的理由遵循此模型。 其中一個最佳方式是當您需要同一份檔的多個檢視時,例如電子錶格和圖表檢視。 檔/檢視模型可讓個別檢視物件代表數據的每個檢視,而所有檢視的通用程式代碼(例如計算引擎)都可以位於檔中。 每當數據變更時,檔也會負責更新所有檢視的工作。
MFC 檔/檢視架構可讓您輕鬆地支援多個檢視、多個檔類型、分割器視窗和其他有價值的使用者介面功能。
使用者和程式設計人員最看得見的 MFC 架構部分都是文件和檢視。 使用架構開發應用程式時,大部分的工作都會寫入您的檔和檢視類別。 本文系列說明:
文件和檢視的目的,以及它們在架構中的互動方式。
您必須執行哪些動作才能實作它們。
檔案/檢視的核心是四個主要類別:
CDocument (或 COleDocument) 類別支援用來儲存或控制程式資料的物件,並提供程式設計人員定義檔案類別的基本功能。 檔代表使用者通常會在 [檔案] 選單上以 [開啟] 命令開啟的數據單位,並使用 [檔案] 功能表上的 [儲存] 命令儲存。
CView (或其許多衍生類別之一)提供程式設計人員定義檢視類別的基本功能。 檢視會附加至檔,並做為文件與使用者之間的媒介:檢視會在畫面上呈現檔的影像,並將使用者輸入解譯為檔上的作業。 檢視也會轉譯列印和列印預覽的影像。
CFrameWnd (或其其中一個變化)支持物件,提供檔一或多個檢視周圍的框架。
CDocTemplate (或 CSingleDocTemplate 或 CMultiDocTemplate) 支援物件,該物件會協調指定類型的一或多個現有檔,並管理建立該類型的正確檔、檢視和框架窗口物件。
下圖顯示檔與其檢視之間的關聯性。
檔和檢視
類別庫中的檔/檢視實作會將數據本身與數據的顯示和用戶作業分開。 數據的所有變更都會透過文件類別進行管理。 檢視會呼叫這個介面來存取及更新數據。
檔、其相關聯的檢視,以及框架檢視框架視窗是由文件範本所建立。 檔範本負責建立和管理一個檔類型的所有檔。