Freigeben über


Mehrere Dokumenttypen, Ansichten und Rahmenfenster

Das Standard-Verhältnis unter einem Dokument seiner Ansicht und einem Rahmenfenster wird in Dokument/Ansichts-Erstellung beschrieben.Ein Großteil Anwendungsunterstützung ein einzelner Dokumenttyp (die jedoch möglicherweise mehrere geöffnete Dokumente dieses Typs) mit einer einzelnen Ansicht auf das Dokument und nur ein Rahmenfenster pro Dokument.Aber einige Anwendungen müssen möglicherweise eine oder mehrere dieser Standards ändern.

Worüber möchten Sie mehr erfahren?

  • Mehrere Dokumenttypen

  • Mehrere Ansichten

  • Mehrere Rahmenfenster

  • Splitterfenster

Mehrere Dokumenttypen

Der MFC-Anwendungs-Assistent wird eine einzelne Dokumentklasse für Sie.In einigen Fällen können Sie jedoch mehr als einen Dokumenttyp unterstützen müssen.Zum Beispiel erfordert die Anwendung möglicherweise Arbeitsblatt- und Diagramm Dokumente.Für jeden Dokumenttyp wird durch seine eigene Dokumentklasse und wahrscheinlich durch seine eigene Ansichtsklasse ebenfalls dargestellt.Wenn der Benutzer den Befehl Neu der Datei auswählt, zeigt das Framework ein Dialogfeld an, das die unterstützten Dokumenttypen auflistet.Anschließend erstellt es ein Dokument des Typs, auf den der Benutzer auswählt.Für jeden Dokumenttyp wird durch ein eigenes Dokumentvorlagen Objekt verwaltet.

Um weitere Dokumentklassen zu erstellen, finden Sie Eine Klasse hinzufügen.Wählen Sie CDocument als Klassentyp, um von Dokumenten zu berechnen und die angeforderten Informationen zu erzeugen.Implementieren Sie dann die neuen Daten der Klasse.

Um das Framework zu informieren über die zusätzliche Dokumentklasse, müssen Sie einen zweiten Aufruf AddDocTemplate in InitInstance Überschreibung der Anwendung Klasse hinzufügen.Weitere Informationen finden Sie unter Dokumentvorlagen.

Mehrere Ansichten

Viele Dokumente benötigen nur eine Ansicht. Es ist jedoch möglich, mehr als eine Ansicht eines Einzelbelegs zu unterstützen.Damit Sie sich mehrere Ansichten zu implementieren, führt ein Dokumentobjekt eine Liste der Sichten, stellt Memberfunktionen zum Hinzufügen und Entfernen von Ansichten bereit, und stellt die UpdateAllViews-Memberfunktion zum Übernehmen von mehreren Ansichten weiß wann die Daten des Dokuments geändert hat.

MFC unterstützt drei allgemeine Benutzeroberfläche, die mehrere Ansichten auf dasselbe Dokument erfordern.Diese Modelle sind:

  • Die Objekte derselben Klasse, jeweils in einem eigenen MDI-Dokumentrahmenfenster.

    Sie sollten das Erstellen eines zweiten Rahmenfensters in einem Dokument unterstützen.Der Benutzer kann einen Befehl Neues Fenster auswählen, zweiten Frame mit Blick auf dasselbe Dokument zu öffnen und die zwei Frames zu verwenden, um unterschiedliche Teile des Dokuments gleichzeitig anzuzeigen.Das Framework unterstützt den Befehl Neues Fenster im Menü Fenster für MDI-Anwendungen, indem Sie das ursprüngliche Rahmenfenster, und die Ansicht dupliziert, die an das Dokument angefügt werden.

  • Die Objekte derselben Klasse in einem Dokumentrahmenfenster.

    Splitterfenster teilen Ansicht leer eines einzelnen Dokumentfensters in separate Ansichten der Vielfaches des Dokuments.Das Framework erstellt mehrere Objekte derselben Ansichtsklasse anzeigen.Weitere Informationen finden Sie unter Splitterfenster.

  • Die Objekte unterschiedlicher Klassen in einem Rahmenfenster.

    In diesem Modell geben eine Variante des Splitterfensters, mehrere Ansichten ein einzelnes Rahmenfenster frei.Die Ansichten werden von verschiedenen Klassen eine Sicht erstellt, die eine andere Art bereitstellen, dasselbe Dokument anzuzeigen.Zum Beispiel könnte eine Sicht ein Textverarbeitungs Dokument im normalen Modus an, während die andere Ansicht im Modus für Umriss angezeigt wird.Ein Splitter-Steuerelement kann der Benutzer die relative Größen der Ansichten angepasst werden.

Die folgende Abbildung, Teile unterteilt in a, b und c, sind die drei Benutzeroberfläche modelle in der Reihenfolge an, die oben dargestellte.

Benutzeroberflächen mit mehreren Ansichten

Benutzeroberflächen mit mehreren Ansichten

Das Framework stellt diese Modelle aus dem Implementieren des Befehls Neues Fenster und der Bereitstellung der Klasse CSplitterWnd bereit, wie in Splitterfenster erläutert.Sie können andere Modelle mithilfe dieser als Ausgangspunkt implementieren.Für Beispielprogramme, die verschiedene Konfigurationen von Ansichten, Rahmenfenstern und Splittern veranschaulichen, finden Sie unter MFC-Beispiele.

Weitere Informationen zu UpdateAllViews finden Sie unter Klasse CView in der MFC-Referenz und Scribble-Beispiel.

Mehrere Rahmenfenster

Sie können den Befehl Neues Fenster im Menü Fenster für MDI-Anwendungen ein zweites Rahmenfenster für dasselbe Dokument erstellen.Weitere Informationen finden Sie unter das erste Modell in der Abbildung Mehrfachverbindungsstelle-Ansicht Benutzeroberflächen.

Splitterfenster

In einem Splitterfenster, ist das Fenster oder teilte werden, um kann in zwei oder bildlauffähigere Bereiche.Ein Splitter-Steuerelement (oder "Teilungsfeld") im Fensterrahmen neben den Bildlaufleisten kann der Benutzer die relative Größe der Bereiche anpassen.Jeder Bereich ist eine Ansicht auf dasselbe Dokument."In" Splittern sind die dynamischen Ansichten derselben Klasse wie im Bereich b Mehrfachverbindungsstelle-Ansicht Benutzeroberflächen der Abbildung dargestellt."In den statischen" Splittern können die Ansichten von verschiedenen Klassen handeln.Splitterfenster beider Methoden werden durch Klasse CSplitterWnd unterstützt.

Dynamische Splitterfenster, mit Ansichten derselben Klasse ermöglichen es dem Benutzer, um ein Fenster in mehrere Bereiche nach Belieben zu teilen und anschließend verschiedene Bereiche Bildlauf durchzuführen, um verschiedene Teile des Dokuments anzuzeigen.Der Benutzer kann ungeteilt das Fenster, die zusätzlich auch Ansichten entfernen.Die Splitterfenster, die Scribble-Beispiel hinzugefügt werden, sind ein Beispiel.In diesem Thema werden die Verfahren zum Erstellen von dynamischen Splitterfenstern.Ein dynamisches Splitterfenster wird im Bereich b Mehrfachverbindungsstelle-Ansicht Benutzeroberflächen der Abbildung dargestellt.

Statische Splitterfenster, mit Ansichten verschiedener Klassen, Beginnen Sie mit dem Fenster in mehrere Bereiche aufgeteilt, die jeweils mit einem anderen Zweck.Beispielsweise wird im Bitmap-Editor von Visual C++ wird das Bild im Fenster zwei Bereiche nebeneinander.Der linke Bereich zeigt ein Bild in Lebensgröße der Bitmap an.Im rechten Bereich werden gezoomtes oder ein vergrößertes Bild aus dem gleichen Bitmap an.Die Bereiche werden durch eine Trennleiste getrennt", die der Benutzer ziehen kann, um die relative Größe der Bereiche ändern.Ein statisches Splitterfenster wird in C Bestandteil Mehrfachverbindungsstelle-Ansicht Benutzeroberflächen der Abbildung dargestellt.

Weitere Informationen finden Sie unter CSplitterWnd-Klasse in der MFC-Referenz und MFC-Beispiele.

Siehe auch

Konzepte

Dokument-/Ansichtarchitektur