文件/檢視架構的替代方案
MFC 應用程式通常使用的文件/檢視架構來管理資訊、 檔案格式與資料給使用者的視覺表示法。 大多數的桌面應用程式,文件/檢視架構是一個適當且有效率的應用程式架構。 這種架構與檢視,且在大多數情況下,用來分隔資料、 簡化您的應用程式,並減少多餘的程式碼。
不過,不適合某些情況下的文件/檢視架構。 請考慮下列範例:
如果正要移植 Windows 的 c 撰寫的應用程式,您可以將文件/檢視支援加入至您的應用程式之前就完成移植。
如果您正在撰寫輕量級公用程式,您可能會發現您可以不具有文件/檢視架構。
如果您原來的程式碼已經混合資料管理與資料檢視時,移動至文件/檢視模型的程式碼並不值得耗費精力因為必須分隔這兩個。 您可能希望將程式碼。
若要建立不使用文件/檢視架構的應用程式,請清除 [ 的文件/檢視架構支援在 MFC 應用程式精靈的步驟 1 中的核取方塊。 請參閱 MFC 應用程式精靈如需詳細資訊。
注意事項 |
---|
請勿選取 [MFC 應用程式精靈所產生的對話方塊架構應用程式的文件/檢視架構,所以的文件/檢視架構支援如果您選擇對話方塊應用程式類型,會停用] 核取方塊。 |
Visual C++ 精靈以及原始碼和對話方塊編輯器中,使用產生的應用程式,就像任何其他精靈產生的應用程式的一樣。 在應用程式可以支援工具列、 捲軸與狀態列,並有有關方塊。 您的應用程式不會登錄任何文件的範本,而且也不會包含文件類別。
請注意產生的應用程式有其檢視類別, CChildView、 衍生從CWnd。 MFC 會建立,並將一個檢視類別的執行個體放在您的應用程式所建立的框架視窗內。 MFC 仍然強制使用 [檢視] 視窗中,因為它簡化了放置與管理應用程式的內容。 您可以新增圖片的程式碼來OnPaint這個類別的成員。 您的程式碼] 檢視,而不是框架也應該加入捲軸列。
MFC 所提供的文件/檢視架構負責實作許多應用程式的基本功能,因為它在專案中的並不存在的原因您必須負責實作應用程式的許多重要功能:
您的應用程式的功能表所提供的 MFC 應用程式精靈,只包含New和Exit命令上檔案功能表。 ( New命令只支援 MDI 應用程式,但是如果沒有文件/檢視表的 SDI 應用程式支援。)產生的功能表資源將不會支援 MRU (最近使用的) 清單。
您必須加入處理函式和實作應用程式支援,包括任何命令的開啟 和 儲存 上 檔案功能表。 MFC 通常會提供程式碼來支援這些功能,但是該支援緊密繫結至文件/檢視架構。
工具列,以供您的應用程式中,如果您有的話,就會降到最低。
強烈建議您建立應用程式不具有文件/檢視架構中,使用 MFC 應用程式精靈,因為 「 精靈 」 可確保正確的 MFC 架構。 不過,如果您必須避免使用精靈下, 面是幾種方法來略過程式碼中的文件/檢視架構:
文件視為未使用的附屬並實作資料管理程式碼在類別檢視中,依上述建議。 文件的耗用量是相對較低的。 會有一個 CDocument 物件會帶來少量額外負荷,本身就再加上虛 CDocument的基底類別, CCmdTarget 和 CObject。 這兩個第二個類別都很小。
宣告於 CDocument:
兩個CString物件。
三個 BOOLs。
一個CDocTemplate指標。
一個CPtrList物件,包含一份文件的檢視。
此外,文件需要的時間來建立文件物件、 檢視物件、 框架視窗和文件樣板物件。
將文件和檢視視為未使用的附加物。 您的資料管理與繪製程式碼置於框架視窗,而不是檢視。 這種方法比較接近 c 語言程式設計模型。
建立文件和檢視中,以避免建立它們根本 MFC 架構的組件會覆寫。 文件的建立程序的開頭呼叫CWinApp::AddDocTemplate。 消除該呼叫由您的應用程式類別InitInstance成員函式,並改為建立框架視窗在InitInstance自己。 資料管理程式碼置於框架視窗類別。 在文件/檢視建立程序所述文件/檢視建立。 這會比較麻煩,而且需要更深入的了解的架構,但它可完全由文件/檢視的額外負荷。
發行項 MFC: 不使用資料庫類別具文件和檢視表的資料庫應用程式內容中提供更具體的範例,文件/檢視限制性的選項值。