Windows には、デバイス コンテキストで使用するさまざまな描画ツールが用意されています。 線を描画するペン、内部を塗りつぶすブラシ、テキストを描画するフォントが用意されています。 MFC には、Windows の描画ツールと同等のグラフィック オブジェクト クラスが用意されています。 次の表は、使用可能なクラスと同等の Windows グラフィックス デバイス インターフェイス (GDI) ハンドルの種類を示しています。
注
詳細については、 GDI+ SDK のドキュメントを参照してください。
この記事では、次のグラフィック オブジェクト クラスの使用方法について説明します。
Windows GDI オブジェクトのクラス
クラス | Windows ハンドルの種類 |
---|---|
CPen | HPEN |
CBrush | HBRUSH |
CFont | HFONT |
CBitmap | HBITMAP |
CPalette | HPALETTE |
CRgn | HRGN |
注
CImage クラスは、強化されたビットマップサポートを提供します。
クラス ライブラリ内の各グラフィック オブジェクト クラスには、そのクラスのグラフィック オブジェクトを作成できるコンストラクターがあり、その後、 CreatePen
などの適切な作成関数を使用して初期化する必要があります。
クラス ライブラリ内の各グラフィック オブジェクト クラスには、関連付けられている Windows ハンドルに MFC オブジェクトをキャストするキャスト演算子があります。 結果のハンドルは、関連付けられているオブジェクトがデタッチするまで有効です。 オブジェクトの Detach
メンバー関数を使用してハンドルをデタッチします。
次のコードは、 CPen
オブジェクトを Windows ハンドルにキャストします。
CPen myPen;
myPen.CreatePen(PS_COSMETIC, 1, RGB(255, 255, 0));
HPEN hMyPen = (HPEN)myPen;
デバイス コンテキストでグラフィック オブジェクトを作成するには
スタック フレーム上にグラフィック オブジェクトを定義します。
CreatePen
など、型固有の作成関数を使用してオブジェクトを初期化します。 または、コンストラクターでオブジェクトを初期化します。 コード例を示す 、1 段階と 2 段階の作成の説明を参照してください。オブジェクトを現在のデバイス コンテキストに選択し、以前に選択した古いグラフィック オブジェクトを保存します。
現在のグラフィック オブジェクトが完了したら、古いグラフィック オブジェクトをデバイス コンテキストに戻して選択し、その状態を復元します。
スコープが終了したときに、フレーム割り当てグラフィック オブジェクトを自動的に削除できるようにします。
注
グラフィック オブジェクトを繰り返し使用する場合は、1 回割り当てて、必要なたびにデバイス コンテキストに選択できます。 このようなオブジェクトは、不要になったら必ず削除してください。