Erstellen von Dokumentrahmenfenstern
Die Dokument-/Ansichtserstellung zeigt, wie das CDocTemplate-Objekt das Erstellen des Rahmenfensters, dokuments und der Ansicht koordiniert und sie alle miteinander verbindet. Drei CRuntimeClass-Argumente für den CDocTemplate
Konstruktor geben das Rahmenfenster, das Dokument und die Ansichtsklassen an, die von der Dokumentvorlage dynamisch als Reaktion auf Benutzerbefehle wie den Befehl "Neu" im Menü "Datei" oder den Befehl "Neues Fenster" in einem MDI-Fenstermenü erstellt werden. Die Dokumentvorlage speichert diese Informationen für die spätere Verwendung, wenn sie ein Rahmenfenster für eine Ansicht und ein Dokument erstellt.
Damit der RUNTIME_CLASS Mechanismus ordnungsgemäß funktioniert, müssen die abgeleiteten Framefensterklassen mit dem DECLARE_DYNCREATE-Makro deklariert werden. Dies liegt daran, dass das Framework Dokumentrahmenfenster mithilfe des dynamischen Konstruktionsmechanismus der Klasse CObject
erstellen muss.
Wenn der Benutzer einen Befehl auswähnt, der ein Dokument erstellt, ruft das Framework die Dokumentvorlage auf, um das Dokumentobjekt, dessen Ansicht und das Rahmenfenster zu erstellen, in dem die Ansicht angezeigt wird. Wenn das Dokumentrahmenfenster erstellt wird, erstellt die Dokumentvorlage ein Objekt der entsprechenden Klasse – eine von CFrameWnd für eine SDI-Anwendung oder von CMDIChildWnd für eine MDI-Anwendung abgeleitete Klasse. Das Framework ruft dann die LoadFrame-Memberfunktion des Framefensterobjekts auf, um Erstellungsinformationen aus Ressourcen abzurufen und das Windows-Fenster zu erstellen. Das Framework fügt das Fensterhandle an das Framefensterobjekt an. Anschließend wird die Ansicht als untergeordnetes Fenster des Dokumentrahmenfensters erstellt.
Achten Sie bei der Entscheidung, wann Sie Ihr CWnd
abgeleitetes Objekt initialisieren möchten.
Was möchten Sie mehr über
Ableiten einer Klasse von CObject (dynamischer Erstellungsmechanismus)
Erstellung von Dokumenten/Ansichten (Vorlagen und Framefenstererstellung)