Freigeben über


Beziehungen zwischen MFC-Objekten

Um das Erstellen von Dokumenten/Ansichten perspektivisch zu gestalten, ziehen Sie ein laufendes Programm in Betracht: ein Dokument, das Rahmenfenster, das verwendet wird, um die Ansicht und die dem Dokument zugeordnete Ansicht zu enthalten.

  • Ein Dokument enthält eine Liste der Ansichten dieses Dokuments und einen Zeiger auf die Dokumentvorlage, die das Dokument erstellt hat.

  • Eine Ansicht hält einen Zeiger auf das Dokument und ist ein untergeordnetes Element des übergeordneten Rahmenfensters.

  • Ein Dokumentrahmenfenster hält einen Zeiger auf die aktuelle aktive Ansicht.

  • Eine Dokumentvorlage behält eine Liste der geöffneten Dokumente bei.

  • Die Anwendung behält eine Liste ihrer Dokumentvorlagen bei.

  • Windows verfolgt alle geöffneten Fenster, sodass nachrichten an sie gesendet werden können.

Diese Beziehungen werden während der Dokument-/Ansichtserstellung erstellt. Die folgende Tabelle zeigt, wie Objekte in einem ausgeführten Programm auf andere Objekte zugreifen können. Jedes Objekt kann einen Zeiger auf das Anwendungsobjekt abrufen, indem die globale Funktion AfxGetApp aufgerufen wird.

Zugriff auf andere Objekte in Ihrer Anwendung

From-Objekt So greifen Sie auf andere Objekte zu
Dokument Verwenden Sie GetFirstViewPosition und GetNextView , um auf die Ansichtsliste des Dokuments zuzugreifen.

Rufen Sie GetDocTemplate auf, um die Dokumentvorlage abzurufen.
Sicht Rufen Sie GetDocument auf, um das Dokument abzurufen.

Rufen Sie GetParentFrame auf, um das Framefenster abzurufen.
Dokumentrahmenfenster Rufen Sie GetActiveView auf, um die aktuelle Ansicht abzurufen.

Rufen Sie GetActiveDocument auf, um das dokument abzurufen, das der aktuellen Ansicht zugeordnet ist.
MDI-Rahmenfenster Rufen Sie MDIGetActive auf, um den aktuell aktiven CMDIChildWnd abzurufen.

In der Regel verfügt ein Rahmenfenster über eine Ansicht, aber manchmal, wie in Splitterfenstern, enthält dasselbe Framefenster mehrere Ansichten. Das Rahmenfenster hält einen Zeiger auf die derzeit aktive Ansicht; Der Zeiger wird jedes Mal aktualisiert, wenn eine andere Ansicht aktiviert wird.

Hinweis

Ein Zeiger auf das Standard Framefenster wird in der m_pMainWnd Membervariable des Anwendungsobjekts gespeichert. Ein Aufruf der OnFileNew Außerkraftsetzung der InitInstance Memberfunktion von CWinApp Sätzen m_pMainWnd für Sie. Wenn Sie nicht aufrufen OnFileNew, müssen Sie den Wert der Variablen selbst InitInstance festlegen. (SDI COM-Komponentenanwendungen (Server) legen die Variable möglicherweise nicht fest, wenn /Embedding sich in der Befehlszeile befindet.) Beachten Sie, dass m_pMainWnd jetzt ein Mitglied der Klasse CWinThread anstelle von CWinApp.

Siehe auch

Dokumentvorlagen und der Erstellungsprozess für Dokument/Ansicht
Erstellen von Dokumentvorlagen
Dokument-/Ansichtserstellung
Erstellen neuer Dokumente, Fenster und Ansichten