Freigeben über


Beziehungen zwischen MFC-Objekten

Zur einfacheren Ausgabe den Dokument/Ansichts-Erstellungsprozess in Perspektive, berücksichtigen ein Programm ein: ein Dokument, das Rahmenfenster, das verwendet wurden, um die Ansicht zu enthalten, und die Ansicht sind im Dokument auf.

  • Ein Dokument wird eine Liste der Ansichten dieses Dokuments und des Zeigers die Normal-Vorlage, die das Dokument erstellt.

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

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

  • Die Normal-Vorlage wird eine Liste der geöffneten Dokumente.

  • Die Anwendung wird eine Liste der Dokumentvorlagen.

  • Windows werden alle geöffneten Fenster stets, sodass es diese Nachrichten zu senden.

Diese Beziehungen werden während der Ansichts-Erstellung Dokument/festgelegt. Die folgende Tabelle zeigt, wie Objekte in einem ausgeführten Programm auf andere Objekte zugreifen können. Jedes beliebige Objekt kann einen Zeiger auf das Anwendungsobjekt erhalten, indem es die globale AfxGetApp- Funktion aufruft.

erhalten zu anderen Objekten in der Anwendung

Vom Objekt

Wie Sie auf andere Objekte zugreift

Document

Verwenden Sie GetFirstViewPosition und GetNextView, um auf die Ansichtsliste des Dokuments zugreifen.

Aufruf GetDocTemplate, um der Normal-Vorlage abzurufen.

Ansicht

Aufruf GetDocument, z des Dokuments abzurufen.

Aufruf GetParentFrame, z des Rahmenfensters abzurufen.

Dokumentrahmenfenster

Aufruf GetActiveView, um die aktuelle Ansicht abzurufen.

Rufen Sie GetActiveDocument auf, um das Dokument zu, das der aktuellen Ansicht angefügt wird.

MDI-Rahmenfenster

Rufen Sie MDIGetActive auf, um aktive CMDIChildWnd nur abzurufen.

Normalerweise verfügt eine Ansicht ein Rahmenfenster, aber manchmal, wie in den Splitterfenstern, enthält das gleiche Rahmenfenster mehrere Ansichten. Das Rahmenfenster enthält einen Zeiger zur derzeit aktive Ansicht; der Zeiger wird aktualisiert, wenn eine andere Ansicht aktiviert ist.

Hinweis

Ein Zeiger auf das Hauptrahmenfenster wird m_pMainWnd in der Membervariable des DLL-Anwendungsobjekts gespeichert.Ein Aufruf von OnFileNew in der Überschreibung der InitInstance-Memberfunktion von CWinApp wird die m_pMainWnd für Sie fest.Wenn Sie OnFileNew aufrufen, müssen Sie den Wert der Variablen in InitInstance selbst festlegen. Anwendungen kann (SDI-COM-Komponente (Server) Legen die Variable nicht fest, wenn /Embedding in der Befehlszeile.) Beachten Sie, dass m_pMainWnd jetzt der Klasse CWinThread und nicht CWinApp ist.

Siehe auch

Konzepte

Dokumentvorlagen und der Erstellungsvorgang für Dokumente und Ansichten

Erstellen von Dokumentvorlagen

Erstellen von Dokument/Ansicht

Erstellen neuer Dokumente, Fenster und Ansichten