CDocument::OnOpenDocument

virtual BOOL OnOpenDocument ( LPCTSTR lpszPathName );

Valor devuelto

Distinto de cero si el documento se ha cargado correctamente; caso contrario 0.

Parámetros

lpszPathName

Puntos de la ruta del documento para abrir.

Observaciones

Llamado por el marco como parte del comando Abrir archivo. La implementación predeterminada de esta función abre el archivo especificado, llama a la función de miembro de DeleteContents para garantizar que el documento está vacío, llama a CObject::Serialize para leer el contenido del archivo y, a continuación, marca el documento como limpio. Reemplazar esta función si desea usar algo distinto del mecanismo de archivo o el mecanismo de archivo. Por ejemplo, podría escribir una aplicación donde los documentos representan registros en una base de datos en lugar de archivos independientes.

Si el usuario elige el comando Abrir archivo en una aplicación SDI, el marco utiliza esta función para reinicializar el objeto CDocument existente, en lugar de crear uno nuevo. Si el usuario decide abrir archivo en una aplicación MDI, el marco crea un nuevo objeto de CDocument cada vez y, a continuación, llama a esta función para inicializarlo. Debe colocar el código de inicialización en esta función en lugar de en el constructor para el comando Abrir archivo para ser eficaces en aplicaciones SDI.

Ejemplo

/ / En los ejemplos siguientes ilustran métodos alternativos de
/ / inicializar un objeto document.

/ / Método 1: en una aplicación MDI, el lugar más simple para hacer / / inicialización es en el documento constructor.nbsp; El marco / / siempre crea un nuevo objeto de documento de archivo nuevo o abrir archivo.

CMyDoc::CMyDoc()
{
   / / Do inicialización de documento MDI aquí.
   // ...
}

/ / Método 2: en una aplicación SDI o MDI, realiza la inicialización de todos y en una anulación de On&NewDocument, si no está seguro de que
/ / la inicialización efectivamente se guarda al guardar archivo
/ / y totalmente restaurada al archivo abierto, a través de la serialización.

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

/ / Do inicialización del nuevo documento aquí.

Devuelve TRUE;
}

/ / Método 3: si no se encuentra la inicialización del documento
/ / efectivamente guardado y restaurado por serialización (durante Guardar archivo
/ / y abrir archivo), a continuación, aplicar la inicialización en solo
/ / función (llamado InitMyDocument en este ejemplo).  Llame a la
/ / comparte la función de inicialización de anulaciones de ambos
/ / OnNewDocument y OnOpenDocument.
 
BOOL CMyDoc::OnNewDocument()
{
   if (!.CDocument::OnNewDocument())
      Return FALSE;

InitMyDocument(); / / llamar a la función de inicialización compartida

Y si el nuevo objeto de documento requiere inicialización adicional
   / / no es necesario cuando se deserializa el documento a través de archivo abierto,
   / y, a continuación, realizar la inicialización adicional aquí.

Devuelve TRUE;
}

Visión General de CDocument |nbsp; Miembros de clase | Diagrama de jerarquía

Vea tambiénnbsp;CDocument::DeleteContents, CDocument::OnCloseDocument, CDocument::On&NewDocument, CDocument::OnSaveDocument, CDocument::ReportSaveLoadException, CObject::Serialize

Index