Freigeben über


CDocument::OnNewDocument

Aufgerufen vom Framework als Teil des neuen Befehls der Datei.

virtual BOOL OnNewDocument( );

Rückgabewert

Ungleich 0 (null), wenn das Dokument erfolgreich initialisiert wurde; andernfalls 0.

Hinweise

Die Standardimplementierung von diesem Funktionsaufrufe die DeleteContents-Memberfunktion, sicherzustellen, dass das Dokument und dann leer ist, das neue Dokument markiert, wie sauber. Überschreiben Sie diese Funktion, um die Datenstruktur für ein neues Dokument zu initialisieren. Sie sollten die Version dieser Funktion von der Überschreibung aufrufen.

Wenn der Benutzer den neuen Befehl der Datei in einer SDI-Anwendung auswählt, verwendet das Framework diese Funktion, um das vorhandene Dokument zu initialisieren, anstatt ein neues. Wenn der Benutzer die Datei auswählt, die in einer neu ist MDI (Multiple Document Interface), erstellt das Framework ein neues Dokument jedes Mal und ruft diese Funktion auf, um sie zu initialisieren. Sie müssen den Initialisierungscode in dieser Funktion anstelle des Konstruktors in platzieren, sodass der neue Befehl der Datei in SDI-Anwendungen wirksam ist.

Beachten Sie, dass es Fälle gibt, in denen OnNewDocument zweimal aufgerufen wird. Dies tritt auf, wenn das Dokument als ActiveX-Dokumenten-Server eingebettet ist. Die Funktion wird zuerst von der CreateInstance-Methode (verfügbar gemacht COleObjectFactory von abgeleitete Klasse) und einem zweiten Mal durch die Methode aufgerufen InitNew (verfügbar gemacht COleServerDoc von abgeleitete Klasse).

Beispiel

Die folgenden Beispiele veranschaulichen alternative Methoden das Initialisieren eines angezeigt.

// Method 1: In an MDI application, the simplest place to do  
// initialization is in the document constructor.  The framework  
// always creates a new document object for File New or File Open.
CExampleDoc::CExampleDoc()
{
   // Do initialization of MDI document here.
}
// Method 2: In an SDI or MDI application, do all initialization  
// in an override of OnNewDocument, if you are certain that 
// the initialization is effectively saved upon File Save 
// and fully restored upon File Open, via serialization.
BOOL CMyDoc::OnNewDocument()
{
   if (!CDocument::OnNewDocument())
      return FALSE;

   // Do initialization of new document here. 

   return TRUE;
}
// Method 3: If the initialization of your document is not 
// effectively saved and restored by serialization (during File Save 
// and File Open), then implement the initialization in single 
// function (named InitMyDocument in this example).  Call the 
// shared initialization function from overrides of both 
// OnNewDocument and OnOpenDocument.
BOOL CExampleDoc::OnNewDocument()
{
   if (!CDocument::OnNewDocument())
      return FALSE;

   InitMyDocument(); // call your shared initialization function 

   // If your new document object requires additional initialization 
   // not necessary when the document is deserialized via File Open, 
   // then perform that additional initialization here. 

   return TRUE;
}

Anforderungen

Header: afxwin.h

Siehe auch

Referenz

CDocument-Klasse

Hierarchiediagramm

CDocument::CDocument

CDocument::DeleteContents

CDocument::OnCloseDocument

CDocument::OnOpenDocument

CDocument::OnSaveDocument