次の方法で共有


GDI リソースの割り当て

ここでは、印刷に必要な Windows グラフィック デバイス インターフェイス (GDI: Graphics Device Interface) オブジェクトの割り当ておよび割り当て解除の方法について説明します。

注意

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 オブジェクトが必要な場合、OnPrint が呼び出されるたびにデバイス コンテキストに対してそれを選択する必要があります。

この GDI オブジェクトの割り当てを解除するには、OnEndPrinting メンバー関数をオーバーライドします。 印刷ジョブの終了時にこの関数が呼び出され、アプリケーションがほかのタスクに移る前に印刷固有の GDI オブジェクトの割り当てを解除できるようになります。

参照

参照

印刷

既定の印刷プロセス