TN025: Dokument, Ansicht und Frame-Erstellung

HinweisHinweis

Im Folgenden technischen Hinweis ist nicht aktualisiert wurde, seitdem er erstmals in der Onlinedokumentation enthalten waren.Folglich können mehrere Prozeduren und Themen veraltet oder falsch.Die aktuellsten Informationen wird empfohlen, zum Thema Onlinedokumentations im Index finden.

Dieser Hinweis wird die Erstellungs- und gibt den Besitz für WinApps, DocTemplates, Dokumente, Feldern und Ansichten.

WinApp

Es gibt ein CWinApp-Objekt im System.

Dies wird statisch von der internen Implementierung des Frameworks von WinMain erstellt und initialisiert.Sie müssen CWinApp abgeleitet werden, um nützliches alle Aufgaben (Ausnahme: Erweiterungs-DLLs sollten eine CWinApp-Instanz enthalten — Initialisierung ist in stattdessen DllMain ausgeführt).

Wenn ein CWinApp-Objekt besitzt eine Liste von Dokumentvorlagen ( CPtrList).Es gibt eine oder mehrere Dokumentvorlage pro Anwendung.DocTemplates werden in der Regel aus der Ressourcendatei (d. h. ein Zeichenfolgenarray) in CWinApp::InitInstance geladen.

pTemplate = new CDocTemplate(IDR_MYDOCUMENT, ...);
AddDocTemplate(pTemplate);

Das Objekt besitzt CWinApp ein Rahmenfenster alle in der Anwendung.Das Hauptrahmenfenster für die Anwendung sollte in CWinApp::m_pMainWnd gespeichert werden. Gehen Sie auf m_pMainWnd normalerweise in der InitInstance Implementierung, wenn Sie keine Anwendungs-Assistenten gelassen haben sie für Sie.Für Single Document Interface (SDI) ist dies ein CFrameWnd, das als das Rahmenfenster der Hauptanwendung sowie das einzige Dokumentrahmenfenster dient.Bei mehrfachen Dokumentschnittstelle (MDI), das dieses MDI-FRAME (dies ist) CMDIFrameWnd-Klasse als das Rahmenfenster der Hauptanwendung, die alle untergeordneten CFrameWnd s enthält.Jedes untergeordnete Fenster ist von der Klasse CMDIChildWnd (abgeleitet von CFrameWnd) und dient als eins möglicherweise viele Dokumentrahmenfenster.

DocTemplates

CDocTemplate ist die Erstellung und der Manager von Dokumenten.Er besitzt die Dokumente, die es erstellt wird.Wenn die Anwendung den ressourcenbasierten unten beschriebenen Herangehensweise verwendet, muss sie nicht von CDocTemplate zu berechnen.

Bei einer SDI-Anwendung behält die Klasse CSingleDocTemplate einem geöffneten Dokument.Bei einer MDI-Anwendung führt die Klasse CMultiDocTemplate eine Liste ( CPtrList) aller derzeit geöffneten Dokumente, die von dieser Vorlage erstellt wurden.CDocTemplate::AddDocument und CDocTemplate::RemoveDocument stellen die virtuelle Memberfunktionen zur das Hinzufügen oder Entfernen eines Dokuments aus der Vorlage bereit.CDocTemplate ist friend von CDocument, damit wir den geschützten CDocument::m_pDocTemplate Zeiger festlegen, um uns Kehrt zur DOC-Vorlage verweisen, in der das Dokument erstellt hat.

CWinApp behandelt die standardmäßige OnFileOpen Implementierung, die wiederum alle DOC-Vorlagen abgefragt wird.In der Implementierung enthält bereits geöffneten Dokumenten nach dem gesucht und Entscheiden, das zu verwendende Format öffnen von neuen Dokumenten.

CDocTemplate verwaltet die Benutzeroberfläche-Bindung für Dokumente und Rahmen.

CDocTemplate enthält die Anzahl der unbenannten Dokumenten.

CDocument

CDocument ist im Besitz von CDocTemplate.

Dokumente weisen eine Liste der gegenwärtig geöffneten Ansichten (abgeleitet von CView) dass das Dokument anzeigen ( CPtrList).

Dokumente nicht zerstört/Ansichten, aber sie aneinander angefügt werden, nachdem sie erstellt wurden.Wenn ein Dokument (d. h. durch Datei/Schließen) geschlossen wird, werden alle angefügten Ansichten geschlossen.Wenn die letzte Ansicht auf ein Dokument geschlossen wird (das heißt Fenster/Schließen) wird das Dokument geschlossen.

CDocument::AddView, RemoveView-Schnittstelle wird verwendet, um die Liste der Ansicht übergeben werden sollen.CDocument ist friend von CView, sodass wir CView::m_pDocument Kehrt den Zeiger festlegen.

CFrameWnd

CFrameWnd (auch als Rahmen) gibt die gleichen Rollen wie in MFC 1.0, aber jetzt die CFrameWnd-Klasse kann in vielen Fällen verwendet werden, ohne erneut eine neue Klasse zu berechnen.Die abgeleiteten Klassen CMDIFrameWnd und CMDIChildWnd werden auch so viele Befehle Standardeinstellung bereits implementiert werden.

CFrameWnd ist für die Erstellung von Fenstern im Clientbereich des Frames verantwortlich.Normalerweise gibt es ein Hauptfenster, das den Clientbereich des Frames ausfüllt.

Für ein MDI-FRAME-Fenster wird der Clientbereich mit dem MDICLIENT-Steuerelement ausgefüllt, das wiederum das übergeordnete Element aller untergeordneten MDI-Rahmenfenster ist.Für ein SDI-FRAME-Fenster oder ein untergeordnetes MDI-Rahmenfenster wird normalerweise mit der Clientbereich CView abgeleitete Fensterobjekt gefüllt.Im Fall CSplitterWnd wird der Clientbereich der Ansicht mit dem CView gefüllt und Fensterobjekt CSplitterWnd abgeleitete Fensterobjekte (eins pro geteilten Bereich) werden als untergeordnete Fenster CSplitterWnd erstellt.

Siehe auch

Weitere Ressourcen

Technische Hinweise durch Zahl

Technische Hinweise nach Kategorie