Partager via


Allocation de ressources GDI

Cet article explique comment allouer et libérer les objets GDI (Graphics Device Interface) Windows nécessaires à l’impression.

Remarque

Pour plus d’informations, consultez la documentation du Kit de développement logiciel (SDK) GDI+.

Supposons que vous devez utiliser certaines polices, stylos ou autres objets GDI pour l’impression, mais pas pour l’affichage à l’écran. En raison de la mémoire dont ils ont besoin, il est inefficace d’allouer ces objets au démarrage de l’application. Lorsque l’application n’imprime pas de document, cette mémoire peut être nécessaire à d’autres fins. Il est préférable de les allouer lorsque l’impression commence, puis de les supprimer lorsque l’impression se termine.

Pour allouer ces objets GDI, remplacez la fonction membre OnBeginPrinting. Cette fonction convient parfaitement à cet objectif pour deux raisons : l’infrastructure appelle cette fonction une fois au début de chaque travail d’impression et, contrairement à OnPreparePrinting, cette fonction a accès à l’objet CDC représentant le pilote de périphérique d’imprimante. Vous pouvez stocker ces objets à utiliser pendant le travail d’impression en définissant des variables membres dans votre classe d’affichage qui pointent vers des objets GDI (par exemple, CFont * des membres, etc.).

Pour utiliser les objets GDI que vous avez créés, sélectionnez-les dans le contexte de l’appareil d’imprimante dans la fonction membre OnPrint . Si vous avez besoin de différents objets GDI pour différentes pages du document, vous pouvez examiner le m_nCurPage membre de la structure CPrintInfo et sélectionner l’objet GDI en conséquence. Si vous avez besoin d’un objet GDI pour plusieurs pages consécutives, Windows vous oblige à le sélectionner dans le contexte de l’appareil chaque fois OnPrint qu’il est appelé.

Pour libérer ces objets GDI, remplacez la fonction membre OnEndPrinting. L’infrastructure appelle cette fonction à la fin de chaque travail d’impression, ce qui vous donne la possibilité de libérer des objets GDI spécifiques à l’impression avant que l’application ne retourne à d’autres tâches.

Voir aussi

Impression
Comment l’impression par défaut est effectuée