Zuordnen von GDI-Ressourcen
In diesem Artikel wird beschrieben, wie Sie die für das Drucken benötigten Objekte der Windows-GDI (Graphics Device Interface) zuweisen und ihre Zuweisung aufheben.
Hinweis
Weitere Informationen finden Sie in der GDI+ SDK-Dokumentation.
Angenommen, Sie müssen bestimmte Schriften, Stifte oder andere GDI-Objekte für das Drucken, aber nicht für die Bildschirmanzeige verwenden. Aufgrund des erforderlichen Arbeitsspeichers ist es ineffizient, diese Objekte beim Start der Anwendung zuzuordnen. Wenn die Anwendung gerade kein Dokument druckt, wird dieser Speicher möglicherweise für andere Zwecke benötigt. Es ist besser, sie bei Beginn des Druckens zuzuordnen und nach dem Druckvorgang zu löschen.
Um diese GDI-Objekte zuzuweisen, überschreiben Sie die OnBeginPrinting-Memberfunktion . Diese Funktion eignet sich aus zwei Gründen gut für diesen Zweck: Das Framework ruft diese Funktion einmal am Anfang jedes Druckauftrags auf, und im Gegensatz zu OnPreparePrinting hat diese Funktion Zugriff auf das CDC-Objekt , das den Druckergerätetreiber darstellt. Sie können diese Objekte für die Verwendung während des Druckauftrags speichern, indem Sie Membervariablen in Ihrer Ansichtsklasse definieren, die auf GDI-Objekte verweisen (z CFont *
. B. Member usw.).
Um die von Ihnen erstellten GDI-Objekte zu verwenden, wählen Sie sie in der OnPrint-Memberfunktion in den Druckergerätekontext aus. Wenn Sie unterschiedliche GDI-Objekte für verschiedene Seiten des Dokuments benötigen, können Sie das m_nCurPage
Element der CPrintInfo-Struktur untersuchen und das GDI-Objekt entsprechend auswählen. Wenn Sie ein GDI-Objekt für mehrere aufeinanderfolgende Seiten benötigen, müssen Sie es bei jedem Aufrufen von OnPrint
in den Gerätekontext wählen.
Um diese GDI-Objekte zu behandeln, überschreiben Sie die OnEndPrinting-Memberfunktion . Das Framework ruft diese Funktion am Ende jedes Druckauftrags auf, wodurch Sie die Zuweisung druckspezifischer GDI-Objekte aufheben können, bevor die Anwendung zu anderen Aufgaben zurückkehrt.