Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La forma más sencilla y recomendada de crear una aplicación de contenedor de documentos activa es crear una aplicación contenedora MFC EXE mediante el Asistente para aplicaciones MFC y, a continuación, modificar la aplicación para admitir la contención activa de documentos.
Para crear una aplicación contenedora de documentos activa
En el menú Archivo , haga clic en Proyectoen el submenú Nuevo .
En el panel izquierdo, haga clic en Tipo de proyecto de Visual C++ .
Seleccione Aplicación MFC en el panel derecho.
Asigne al proyecto el nombre MyProj y haga clic en Aceptar.
Seleccione la página Compatibilidad con documentos compuestos .
Seleccione la opción Contenedor o Contenedor/Servidor completo .
Seleccione la casilla Contenedor de documentos activo.
Haga clic en Finalizar
Cuando el Asistente para aplicaciones MFC termine de generar la aplicación, abra los archivos siguientes mediante el Explorador de soluciones:
- MyProjview.cpp
En MyProjview.cpp, realice los siguientes cambios:
En
CMyProjView::OnPreparePrinting
, reemplace el contenido de la función por el código siguiente:if (!CView::OnPreparePrinting(pInfo)) return FALSE; if (!COleDocObjectItem::OnPreparePrinting(this, pInfo)) return FALSE; return TRUE;
OnPreparePrinting
proporciona compatibilidad con la impresión. Este código reemplazaDoPreparePrinting
, que es la preparación de impresión predeterminada.La contención activa de documentos proporciona un esquema de impresión mejorado:
En primer lugar, puede llamar al documento activo a través de su
IPrint
interfaz y indicarle que se imprima a sí mismo. Esto es diferente de la contención OLE anterior, en la que el contenedor tenía que representar una imagen del elemento contenido en el objeto de impresoraCDC
.Si se produce un error, indique al elemento contenido que se imprima a sí mismo a través de su
IOleCommandTarget
interfaz.Si se produce un error, realice su propia representación del elemento.
Las funciones estáticas miembro
COleDocObjectItem::OnPrint
yCOleDocObjectItem::OnPreparePrinting
, como se implementó en el código anterior, controlan este esquema de impresión mejorado.Agregue cualquier implementación propia y compile la aplicación.