Partager via


Création d’une application conteneur de documents actif

La méthode la plus simple et la plus recommandée pour créer une application conteneur de document 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'encapsulation des documents actifs.

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. Activez la case à cocher Conteneur de documents actifs .

  8. Cliquez sur Terminer.

  9. Une fois l’Assistant Application MFC terminé la génération de l’application, ouvrez les fichiers suivants à l’aide de l’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

Contenu du document actif