Share via


CDocument::OnNewDocument

Llamado por el marco como parte del Archivo Nuevo.

virtual BOOL OnNewDocument( );

Valor devuelto

Distinto de cero si el documento se inicializó correctamente; si no 0.

Comentarios

La implementación predeterminada de este las llamadas de función la función miembro de DeleteContents para garantizar que el documento está vacío y después marca el nuevo documento como limpio.Invalide esta función para inicializar la estructura de datos para un nuevo documento.Debe llamar a la versión de la clase base de esta función de reemplazo.

Si el usuario elige el comando de Archivo Nuevo en una aplicación SDI, el marco de trabajo usa esta función para restablecer el documento existente, en lugar de crear un nuevo.Si el usuario elige el Archivo Nuevo en una aplicación (MDI) de interfaz de múltiples documentos, el marco de trabajo crea un nuevo documento cada vez y después llama a esta función para inicializarla.Debe colocar el código de inicialización de esta función en lugar del constructor para que el comando de Archivo Nuevo funcione en aplicaciones SDI.

Observe que hay casos donde OnNewDocument se llama dos veces.Esto sucede cuando el documento se incrusta como Servidor de documento ActiveX.La función primero se llama al método de CreateInstance (expuesto por COleObjectFactory- clase derivada) y una segunda vez al método de InitNew (expuesto por COleServerDoc- clase derivada).

Ejemplo

Los ejemplos siguientes se muestran los métodos alternativos para inicializar un objeto document.

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

Requisitos

encabezado: afxwin.h

Vea también

Referencia

Clase de CDocument

Gráfico de jerarquía

CDocument::CDocument

CDocument::DeleteContents

CDocument::OnCloseDocument

CDocument::OnOpenDocument

CDocument::OnSaveDocument