Compartir a través de


Crear una aplicación de contenedor de documentos activo

La forma más sencilla y recomendada de crear una aplicación contenedora 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 de documentos activos.

Para crear una aplicación de contenedor de documentos activo

  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, 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 siguientes archivos con el Explorador de soluciones:

    • MyProjview.cpp
  10. En MyProjview.cpp, realice los cambios siguientes:

    • En CMyProjView::OnPreparePrinting, reemplace el contenido de la función con el código siguiente:

      if (!CView::OnPreparePrinting(pInfo))
          return FALSE;
      
      if (!COleDocObjectItem::OnPreparePrinting(this, pInfo))
          return FALSE;
      
      return TRUE;
      

    OnPreparePrinting proporciona soporte de impresión. Este código reemplaza a DoPreparePrinting, que es la preparación de impresión predeterminada.

    La contención de documentos activos proporciona un esquema de impresión mejorado:

    • Primero puede llamar al documento activo a través de su interfaz IPrint e indicarle que se imprima solo. 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 CDC de la impresora.

    • Si eso falla, indique al elemento contenido que se imprima a través de su interfaz IOleCommandTarget

    • Si se produce un error, haga su propia representación del elemento.

    Las funciones de miembro estáticas COleDocObjectItem::OnPrint y COleDocObjectItem::OnPreparePrinting, como se implementaron en el código anterior, controlan este esquema de impresión mejorado.

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

Consulte también

Contención de documentos activos