Création d'une application conteneur de documents actifs

La méthode la plus simple et la plus recommandée pour créer une application conteneur de documents actif consiste à créer une application conteneur EXE MFC à l’aide de l’Assistant Application MFC, puis à modifier l’application pour prendre en charge l’isolement actif du document.

Pour créer une application conteneur de documents actif

  1. Dans le menu Fichier , cliquez sur Projetà partir du sous-menu Nouveau .

  2. Dans le volet gauche, cliquez sur Type de projet Visual C++ .

  3. Sélectionnez Application MFC dans le volet droit.

  4. Nommez le projet MyProj, cliquez sur OK.

  5. Sélectionnez la page Prise en charge des documents composés.

  6. Sélectionnez l’option Conteneur ou Conteneur/Serveur complet.

  7. Sélectionnez la zone case activée conteneur de documents actif.

  8. Cliquez sur Terminer.

  9. Une fois l’Assistant Application MFC terminée la génération de l’application, ouvrez les fichiers suivants à l’aide de Explorateur de solutions :

    • MyProjview.cpp
  10. Dans MyProjview.cpp, apportez les modifications suivantes :

    • Dans CMyProjView::OnPreparePrinting, remplacez le contenu de la fonction par le code suivant :

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

    OnPreparePrinting assure la prise en charge de l’impression. Ce code remplace DoPreparePrinting, qui est la préparation d’impression par défaut.

    L’endiguement des documents actifs fournit un schéma d’impression amélioré :

    • Vous pouvez d’abord appeler le document actif via son IPrint interface et lui indiquer d’imprimer lui-même. Cela est différent de l’endiguement OLE précédent, dans lequel le conteneur a dû restituer une image de l’élément contenu sur l’objet d’imprimante CDC .

    • En cas d’échec, indiquez à l’élément contenu de s’imprimer par le biais de son IOleCommandTarget interface

    • En cas d’échec, effectuez votre propre rendu de l’élément.

    Les fonctions membres statiques COleDocObjectItem::OnPrint et COleDocObjectItem::OnPreparePrinting, comme implémentées dans le code précédent, gèrent ce schéma d’impression amélioré.

  11. Ajoutez n’importe quelle implémentation de votre propre application et générez l’application.

Voir aussi

Documents actifs (contenance)