次の方法で共有


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

Windows には、デバイス コンテキストで使用するさまざまな描画ツールが用意されています。 線を描画するペン、内部を塗りつぶすブラシ、テキストを描画するフォントが用意されています。 MFC には、Windows の描画ツールと同等のグラフィック オブジェクト クラスが用意されています。 次の表は、使用可能なクラスと同等の Windows グラフィックス デバイス インターフェイス (GDI) ハンドルの種類を示しています。

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

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;

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

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

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

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

  4. スコープが終了したときに、フレーム割り当てグラフィック オブジェクトを自動的に削除できるようにします。

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

詳しく知りたいこと

こちらも参照ください

ウィンドウ オブジェクト