Créer une application conteneur de documents actifs
Le moyen plus simple et le plus recommandé pour créer une application de conteneur de documents actifs consiste à créer une application conteneur de MFC EXE graĉe à l'assistant d'Application MFC, puis modifier l'application pour prendre en charge la relation contenant-contenu de document actif.
Création d'une application conteneur de documents actifs
Dans le menu Fichier, cliquez sur Projetdans le sous-menu Nouveau.
Dans le volet gauche, cliquez sur le type de projet Visual C++.
Sélectionnez Application MFC dans le volet droit.
Nom du projet MyProj, cliquez sur OK.
Sélectionnez la page Prise en charge doc. composés.
Sélectionnez l'option Conteneur ou Conteneur/serveur entier.
Activez la case à cocher Conteneur de documents actifs.
Cliquez sur Terminer.
Lorsque l'Application MFC termine de générer 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;
OnPreparePrinting fournit la prise en charge de l'impression. Ce code remplace DoPreparePrinting, qui est la préparation d'impression par défaut.
La relation contenant-contenu de document actif est un modèle amélioré d'impression :
Vous pouvez appeler au préalable le document actif via son interface IPrint et lui indiquer de s'imprimer. Ceci est différent de la relation contenant-contenu précédente de OLE, dans laquelle le conteneur defait afficher une image de l'élément contenu dans l'objet imprimant CDC.
Si cette tentative échoue, indiquez à l'élément contenu de s'imprimer via son interfaced'IOleCommandTarget
Si cette tentative échoue, faites votre propre rendu de l'élément.
Les fonctions membre statiques COleDocObjectItem::OnPrint et COleDocObjectItem::OnPreparePrinting, implémentées dans le code précédent, gérent ce schéma amélioré d'impression.
Ajoutez toute implémentation que vous ayez pu faire et générez l'application.