グラフィック オブジェクト

Windows には、デバイス コンテキストで使用する、さまざまな描画ツールが用意されています。 線を描画するためのペン、内部を塗りつぶすためのブラシ、およびテキストを描画するためのフォントがあります。 MFC には、Windows の描画ツールに相当するグラフィック オブジェクト クラスがあります。 利用できるクラスとそれに相当する 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

ここでは、グラフィック オブジェクト クラスの使い方について説明します。

Windows GDI オブジェクトのクラス

Class

Windows のハンドル型

CPen

HPEN

CBrush

HBRUSH

CFont

HFONT

CBitmap

HBITMAP

CPalette

HPALETTE

CRgn

HRGN

注意

CImage クラスでは、拡張ビットマップがサポートされています。

クラス ライブラリ内の各グラフィック オブジェクト クラスには、それぞれのクラスのグラフィック オブジェクトを作成するコンストラクターがあります。グラフィック オブジェクトは、CreatePen などの該当する作成用関数を使って初期化する必要があります。

クラス ライブラリの各グラフィック オブジェクト クラスには、MFC オブジェクトを該当する Windows のハンドルにキャストする、キャスト演算子が用意されています。 このハンドルは、そのオブジェクトによって分離されるまで有効です。 ハンドルを分離するには、オブジェクトの Detach メンバー関数を使用します。

次のコードは、CPen オブジェクトを Windows のハンドルにキャストします。

CPen myPen;
myPen.CreatePen(PS_COSMETIC, 1, RGB(255,255,0));
HPEN hMyPen = (HPEN)myPen;

デバイス コンテキストでグラフィック オブジェクトを作成するには

  1. スタック フレームでグラフィック オブジェクトを定義します。 CreatePen など、それぞれの型固有の作成関数で初期化します。 または、コンストラクターでオブジェクトを初期化します。 「1 段階でのオブジェクトの構築と 2 段階でのオブジェクトの構築」で説明されているコード例を参照してください。

  2. オブジェクトを現在のデバイス コンテキストに選択し、前に選択した古いグラフィック オブジェクトを保存します。

  3. 現在のグラフィック オブジェクトを使い終わったら、古いグラフィック オブジェクトをデバイス コンテキストに選択し直して、状態を復元します。

  4. フレームに割り当てられたグラフィック オブジェクトは、スコープからはずれたときに自動的に削除されます。

注意

グラフィック オブジェクトを繰り返し使用する場合は、グラフィック オブジェクトをいったん割り当て、必要になるたびにデバイス コンテキストに選択します。 この場合、オブジェクトが不要になったときは、必ず削除します。

さらに詳しくは次のトピックをクリックしてください

参照

概念

ウィンドウ オブジェクト