次の方法で共有


GDI リソースの割り当て

この技術情報では、印刷はに必要な Windows のグラフィック デバイス インターフェイスの (GDI) のオブジェクトの割り当てを解放する方法について説明します。

[!メモ]

GDI+ は Windows XP に含まれており、 Windows NT では再頒布可能パッケージとして使用する 4.0 SP6、 Windows 2000、 Windows 98、および Windows ME。最新の再頒布可能パッケージをダウンロードするには、 https://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdkredist.htm" " を参照してください。詳細については、 MSDN の GDI+ SDK のドキュメントを参照: https://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdicpp/GDIPlus/GDIPlus.asp

印刷に、画面表示の特定のフォント、ペン、またはそのほかの GDI オブジェクトを使用する必要があると仮定します。これらは、必要なメモリのアプリケーションの起動時にこれらのオブジェクトを割り当てても効率的です。アプリケーションがドキュメントを印刷していない場合、そのメモリは他のオブジェクトに必要な場合があります。最後の印刷時に印刷を開始し、それらを削除すると、それらを割り当てると、優先されます。

これらの GDI オブジェクトを割り当てるには、 OnBeginPrinting のメンバー関数をオーバーライドします。この関数は、このオブジェクトに 2 個の理由により適しています: フレームワークは、各印刷ジョブの先頭にこの関数を一度ダイヤルし、 OnPreparePrintingとは異なり、この関数に CDC のを表すオブジェクトへのアクセスがプリンター デバイス ドライバーあります。印刷ジョブの間にビュー クラスで GDI オブジェクトをポイントするメンバー変数を定義して使用するこれらのオブジェクトを格納できます (たとえば、 CFont * のメンバーなど)。

作成する GDI オブジェクトを使用するには、 OnPrint のメンバー関数のプリンター デバイス コンテキストに選択します。必要な場合は別の GDI はドキュメントの異なるページに対してオブジェクトは CPrintInfo の構造体の m_nCurPage のメンバーを確認し、 GDI オブジェクトをそれに応じて選択できます。複数の連続したページの GDI オブジェクトが必要な場合は、 Windows はデバイス コンテキスト OnPrint たびに呼び出されます選択する必要があります。

これらの GDI オブジェクトを解放するには、 OnEndPrinting のメンバー関数をオーバーライドします。フレームワークは、他のタスクに戻り、アプリケーションの前に出力仕様 (GDI オブジェクトを解放する機会が与えられます各印刷ジョブの最後にこの関数を呼び出しますします。

参照

関連項目

印刷

既定の印刷プロセス