Compartir a través de


Creación de una aplicación contenedora de documentos activa

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

  1. En el menú Archivo , haga clic en Proyectoen el submenú Nuevo .

  2. En el panel izquierdo, haga clic en Tipo de proyecto de Visual C++ .

  3. Seleccione Aplicación MFC en el panel derecho.

  4. Asigne al proyecto el nombre MyProj y haga clic en Aceptar.

  5. Seleccione la página Compatibilidad con documentos compuestos .

  6. Seleccione la opción Contenedor o Contenedor/Servidor completo .

  7. Seleccione la casilla Contenedor de documentos activo.

  8. Haga clic en Finalizar

  9. Cuando el Asistente para aplicaciones MFC termine de generar la aplicación, abra los archivos siguientes mediante el Explorador de soluciones:

    • MyProjview.cpp
  10. 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 reemplaza DoPreparePrinting, 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 impresora CDC .

    • 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 y COleDocObjectItem::OnPreparePrinting, como se implementó en el código anterior, controlan este esquema de impresión mejorado.

  11. Agregue cualquier implementación propia y compile la aplicación.

Consulte también

Contención de documentos activos