Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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
Dans le menu Fichier , cliquez sur Projetà partir du sous-menu Nouveau .
Dans le volet gauche, cliquez sur Type de projet Visual C++ .
Sélectionnez Application MFC dans le volet droit.
Nommez le projet MyProj, cliquez sur OK.
Sélectionnez la page Prise en charge des documents composés .
Sélectionnez l’option Conteneur ou Conteneur/Serveur complet .
Activez la case à cocher Conteneur de documents actifs .
Cliquez sur Terminer.
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
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;
OnPreparePrintingassure la prise en charge de l’impression. Ce code remplaceDoPreparePrinting, 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
IPrintinterface 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’imprimanteCDC.En cas d’échec, indiquez à l’élément contenu de s’imprimer par le biais de son
IOleCommandTargetinterfaceEn cas d’échec, effectuez votre propre rendu de l’élément.
Les fonctions membres statiques
COleDocObjectItem::OnPrintetCOleDocObjectItem::OnPreparePrinting, comme implémentées dans le code précédent, gèrent ce schéma d’impression amélioré.Ajoutez n’importe quelle implémentation de votre propre application et générez l’application.