CDocument::OnNewDocument

virtuelle BOOL OnNewDocument ( );

Rückgabewert

Ungleich NULL, wenn das Dokument erfolgreich initialisiert wurde; andernfalls 0.

Bemerkungen

Als Teil des Befehls Datei neu aufgerufen. Die Standardimplementierung dieser Funktion Ruft die Memberfunktion DeleteContents um sicherzustellen, dass das Dokument leer ist und dann das neue Dokument als sauber markiert. Diese Funktion initialisiert die Datenstruktur für ein neues Dokument zu überschreiben. Sie sollten die Basisklassenversion dieser Funktion von der Überschreibung aufrufen.

Wenn der Benutzer mit dem Befehl Datei-neu in einer SDI-Anwendung auswählt, verwendet das Framework diese Funktion erneut initialisieren das vorhandene Dokument, anstatt eine neue zu erstellen. Wenn der Benutzer neue Datei in einer Anwendung multiple Document Interface (MDI), im Rahmen jedes Mal ein neues Dokument erstellt und ruft dann diese Funktion initialisiert. Sie müssen Ihren Initialisierungscode in dieser Funktion anstatt im Konstruktor für die neue Datei Befehl wirksam bei SDI-Anwendungen platzieren.

Beispiel

/ / Den folgenden Beispielen werden alternative Methoden der
/ / initialisieren ein Document-Objekt.

/ / Methode 1: In einer MDI-Anwendung der einfachste Ort zu tun / / Initialisierung ist in dem Dokument constructor.nbsp; Rahmen / / erstellt ein neues Dokumentobjekt immer für neue Datei oder Datei öffnen.

CMyDoc::CMyDoc()
{
   / / Initialisierung des MDI Dokument hier tun.
   // ...
}

/ / Methode 2: In einer SDI- oder MDI-Anwendung tun alle Initialisierung / / in einer Überschreibung der On&NewDocument, bist du sicher, dass
/ / die Initialisierung ist tatsächlich eingesparten Datei speichern
/ / und vollständig restaurierte auf Datei öffnen, über Serialisierung.

BOOL CMyDoc::OnNewDocument()
{
   If (!.CDocument::OnNewDocument())
      Return FALSE;

/ / Initialisierung des neuen Dokuments hier tun.

TRUE zurück;
}

/ / Methode 3: Wenn die Initialisierung des Dokuments nicht ist
/ / effektiv gespeichert und wiederhergestellt, indem Serialisierung (in Datei speichern
/ / und Datei öffnen), dann implementieren Sie die Initialisierung in einzelne
/ / Funktion (benannt InitMyDocument in diesem Beispiel).  Rufen Sie die
/ / gemeinsame Initialisierungsfunktion von Außerkraftsetzungen von beiden
/ / OnNewDocument und OnOpenDocument.

BOOL CMyDoc::OnNewDocument()
{
   If (!.CDocument::OnNewDocument())
      Return FALSE;

InitMyDocument(); / / Ihre gemeinsame Initialisierungsfunktion aufrufen

/ / Wenn das neue Dokumentobjekt zusätzliche Initialisierung erfordert
   / / nicht notwendig, wenn das Dokument über Datei öffnen, deserialisiert wird
   / / dann, dass die zusätzliche Initialisierung hier durchführen.

TRUE zurück;
}

Übersicht über die CDocument |nbsp; Member der Klasse | Hierarchiediagramm

Siehe auch&Nbsp;CDocument::CDocument, CDocument::DeleteContents, CDocument::OnCloseDocument, CDocument::OnOpenDocument, CDocument::OnSaveDocument

Index