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

更新 : 2007 年 11 月

Windows には、デバイス コンテキストで使用する、さまざまな描画ツールが用意されています。線を描画するためのペン、内部を塗りつぶすためのブラシ、およびテキストを描画するためのフォントがあります。MFC には、Windows の描画ツールに相当するグラフィック オブジェクト クラスがあります。利用できるクラスとそれに相当する Windows グラフィック デバイス インターフェイス (GDI: Graphics Device Interface) のハンドルの型を次の表に示します。

w6196kz3.alert_note(ja-jp,VS.90).gifメモ :

Windows XP には GDI+ が含まれています。また、Windows NT 4.0 SP6、Windows 2000、Windows 98、および Windows Me 対応の再頒布可能な GDI+ も用意されています。最新の再頒布パッケージをダウンロードするには、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 オブジェクトのクラス

クラス

Windows のハンドル型

CPen

HPEN

CBrush

HBRUSH

CFont

HFONT

CBitmap

HBITMAP

CPalette

HPALETTE

CRgn

HRGN

w6196kz3.alert_note(ja-jp,VS.90).gifメモ :

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

w6196kz3.alert_note(ja-jp,VS.90).gifメモ :

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

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

参照

概念

ウィンドウ オブジェクト