共用方式為


多個文件類型、 檢視和框架視窗

標準文件、 它的檢視和框架視窗之間的關聯性中所描述文件/檢視建立。 許多應用程式都支援具有單一檢視文件和每個文件只有一個框架視窗 (但可能是多個開啟的文件的該型別) 的單一文件型別。 但是,某些應用程式可能需要變更一或多個這些預設值。

您還想知道關於哪些方面的詳細資訊?

  • 多重文件類型

  • 多個檢視

  • 多個框架視窗

  • 分隔視窗

多重文件類型

MFC 應用程式精靈為您建立一份文件類別。 不過,在某些情況下,您可能需要支援一個以上的文件類型。 比方說,您的應用程式可能需要工作表和圖表的文件。 每個文件型別都會由它自己的文件類別同時大概也是由其檢視類別。 當使用者選擇 [開新檔案] 命令時,架構會顯示一個對話方塊,列出支援的文件類型。 然後它會建立在使用者選擇類型的文件。 每個文件類型是由其本身的文件樣板物件管理的。

若要建立額外的文件類別時,請參閱將類別加入。 選擇 CDocument 與類別型別從衍生,並提供要求的文件的資訊。 然後實作新類別的資料。

若只要讓架構的了解您額外的文件的類別,您必須加入第二次呼叫 AddDocTemplate 在您的應用程式類別 InitInstance 覆寫。 如需詳細資訊,請參閱文件範本

多個檢視

有許多文件需要只是單一檢視,但仍可支援多個檢視的一份文件。 為了協助您實作多個檢視,文件物件會保留其檢視清單、 提供成員函式加入和移除檢視,並提供給 UpdateAllViews 成員函式,讓多個檢視知道文件的資料變更時。

MFC 支援三種常用的使用者介面需要相同的文件的多個檢視。 這些模式是:

  • 同一個類別,每個獨立的 MDI 文件框架視窗中的檢視物件。

    您可以在支援文件上建立第二個框架視窗。 使用者可以選擇 [開新視窗指令以開啟同一份文件檢視的第二個框架,並使用兩個框架來同時檢視文件的不同部分。 架構支援 MDI 應用程式的 [視窗] 功能表上的 [開新視窗] 命令透過複製初始框架視窗與貼附於文件的檢視。

  • 相同類別中相同的文件框架視窗的檢視物件。

    分隔視窗將單一文件視窗的檢視空間為文件的多個不同的檢視。 架構從相同的檢視類別中建立多個檢視物件。 如需詳細資訊,請參閱分隔視窗。

  • 單一框架視窗中的不同類別的檢視物件。

    此模型中,一種分隔視窗中,在多個檢視會共用單一框架視窗。 每個檢視提供不同的方法,來檢視相同的文件時,是由不同的類別建構檢視表。 比方說,某一個檢視可能文書處理文件以標準模式時顯示 [其他] 檢視會顯示它在大綱模式中。 分隔器控制項可讓使用者能夠調整的檢視表的相對大小。

下圖中,分割成組件 a、 b 及 c,會顯示三種使用者介面模型的上方顯示的順序。

多重檢視使用者介面

多重檢視使用者介面

藉由實作新視窗] 命令,並藉由提供類別,此架構提供這些模型 CSplitterWnd、 所討論的 分隔視窗。 您可以實作而有些款式由此為一個起點。 範例程式,說明不同的設定的檢視表、 框架視窗和分隔器中,請參閱 MFC 範例

如需有關UpdateAllViews,請參閱類別 CViewMFC 參考手冊 》手繪多邊形範例

多個框架視窗

您可以使用 MDI 應用程式的 [視窗] 功能表上的 [開新視窗] 指令來建立相同的文件的第二個框架視窗。 如需詳細資訊,請參閱圖中的第一個模型多重檢視使用者介面。

分隔視窗

在分隔視窗中,[] 視窗,或可能被分隔成兩個或多個可捲動窗格。 分隔器控制項 (或稱為 「 分隔方塊 」) 在視窗框架中捲軸列] 旁,可讓使用者能夠調整窗格的相對大小。 每個窗格都是相同的文件檢視。 在 「 動態 」 分隔器中,檢視表是相同類別的組件 b 的圖中所示多重檢視使用者介面。 在 「 靜態 」 分隔器中,檢視可能屬於不同的類別中。 這兩種類型的分隔視窗支援類別的 CSplitterWnd

動態分隔視窗中,具有相同的類別,檢視可讓使用者的視窗切割成多個窗格會,然後捲動不同的窗格,來查看文件的不同部份。 使用者也可以取消分割以移除其他的檢視視窗。 若要新增分隔視窗手繪多邊形範例是一個範例。 這個主題說明動態分隔視窗的技巧。 動態分隔視窗中會顯示在圖形的組件 b 多重檢視使用者介面。

靜態分隔視窗,具有不同檢視類別,會開始就將視窗分割成數個窗格,各有不同的用途。 比方說,在 Visual C++ 點陣圖編輯器中,影像視窗會顯示兩個窗格以並排方式。 在左窗格會顯示實際的大小的點陣圖影像。 右手邊的窗格會顯示相同點陣圖的放大影像。 以"分隔列 」,使用者可以變更 [] 窗格的相對大小拖曳分隔窗格。 靜態分隔視窗中顯示圖形的組件 c 多重檢視使用者介面。

如需詳細資訊,請參閱類別 CSplitterWndMFC 參考手冊 》MFC 範例

請參閱

概念

文件/檢視架構