Condividi tramite


CDocument::OnNewDocument

Chiamato dal framework come parte del nuovo comando del file.

virtual BOOL OnNewDocument( );

Valore restituito

Diverso da zero se il documento è stato inizializzato correttamente; in caso contrario 0.

Note

L'implementazione predefinita di questa funzione chiama la funzione membro DeleteContents per assicurarsi che il documento è vuoto e quindi contrassegna il nuovo documento come pulito.Eseguire l'override di questa funzione per inizializzare la struttura dei dati per un nuovo documento.È necessario chiamare la versione della classe base di questa funzione dagli override.

Se l'utente sceglie il nuovo comando del file in un'applicazione SDI, il framework utilizza questa funzione per reinitialize il documento esistente, anziché creare un nuovo oggetto.Se l'utente sceglie il nuovo file in un'applicazione di (MDI) con interfaccia a documenti multipli, il framework crea ogni volta che un nuovo documento e quindi chiama la funzione per inizializzare.È necessario inserire il codice di inizializzazione in questa funzione anziché nel costruttore per il nuovo comando del file sia valido nelle applicazioni SDI.

Si noti che sono casi in cui OnNewDocument viene chiamato due volte.Ciò si verifica quando il documento viene incorporato come server del documento ActiveX.La funzione viene chiamata dal metodo CreateInstance (esposto da COleObjectFactoryderivata da) e una seconda volta con il metodo InitNew (esposto da COleServerDocderivata da).

Esempio

Negli esempi seguenti vengono illustrati i metodi alternativi per inizializzare un oggetto del documento.

// 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;
}

Requisiti

Header: afxwin.h

Vedere anche

Riferimenti

Classe di CDocument

Grafico della gerarchia

CDocument::CDocument

CDocument::DeleteContents

CDocument::OnCloseDocument

CDocument::OnOpenDocument

CDocument::OnSaveDocument