CGdiObject クラス

ビットマップ、領域、ブラシ、ペン、パレット、フォントなどの Windows のさまざまな種類のグラフィックス デバイス インターフェイス (GDI) の基底クラスを提供します。

構文

class CGdiObject : public CObject

メンバー

パブリック コンストラクター

名前 説明
CGdiObject::CGdiObject CGdiObject オブジェクトを構築します。

パブリック メソッド

名前 説明
CGdiObject::Attach Windows GDI オブジェクトをオブジェクトに CGdiObject アタッチします。
CGdiObject::CreateStockObject Windows の定義済みのストック ペン、ブラシ、またはフォントのいずれかに対するハンドルを取得します。
CGdiObject::D eleteObject オブジェクトに関連付けられているすべてのシステム ストレージを CGdiObject 解放することで、オブジェクトにアタッチされている Windows GDI オブジェクトをメモリから削除します。
CGdiObject::D eleteTempMap によって作成されたすべての一時 CGdiObject オブジェクトを FromHandle削除します。
CGdiObject::D etach オブジェクトから Windows GDI オブジェクトを CGdiObject デタッチし、Windows GDI オブジェクトへのハンドルを返します。
CGdiObject::FromHandle Windows GDI オブジェクトへのハンドルを CGdiObject 指定したオブジェクトへのポインターを返します。
CGdiObject::GetObject オブジェクトにアタッチされている Windows GDI オブジェクトを記述するデータをバッファーに CGdiObject 格納します。
CGdiObject::GetObjectType GDI オブジェクトの型を取得します。
CGdiObject::GetセーフHandle m_hObject NULL でない限りthis、NULL を返します。この場合は NULL が返されます。
CGdiObject::UnrealizeObject ブラシの原点をリセットするか、論理パレットをリセットします。

パブリック演算子

名前 説明
CGdiObject::operator != 2 つの GDI オブジェクトが論理的に等しくないかどうかを判断します。
CGdiObject::operator == 2 つの GDI オブジェクトが論理的に等しいかどうかを判断します。
CGdiObject::operator HGDIOBJ アタッチされた Windows GDI オブジェクトへの HANDLE を取得します。

パブリック データ メンバー

名前 説明
CGdiObject::m_hObject このオブジェクトにアタッチされている HBITMAP、HPALETTE、HRGN、HBRUSH、HPEN、または HFONT を含むハンドル。

解説

直接作成することはありません CGdiObject 。 代わりに、派生クラスの 1 つからオブジェクトを作成します 。次に例を示 CPen します CBrush

詳細についてはCGdiObject、「グラフィック オブジェクト」を参照してください

継承階層

CObject

CGdiObject

必要条件

ヘッダー: afxwin.h

CGdiObject::Attach

Windows GDI オブジェクトをオブジェクトに CGdiObject アタッチします。

BOOL Attach(HGDIOBJ hObject);

パラメーター

hObject
Windows GDI オブジェクトへのハンドル (HPEN や HBRUSH など)。

戻り値

添付ファイルが成功した場合は 0 以外。それ以外の場合は 0。

CGdiObject::CGdiObject

CGdiObject オブジェクトを構築します。

CGdiObject();

解説

直接作成することはありません CGdiObject 。 代わりに、派生クラスの 1 つからオブジェクトを作成します 。次に例を示 CPen します Cbrush

CGdiObject::CreateStockObject

定義済みのストック Windows GDI ペン、ブラシ、またはフォントのハンドルを取得し、GDI オブジェクトをオブジェクトに CGdiObject アタッチします。

BOOL CreateStockObject(int nIndex);

パラメーター

Nindex
必要なストック オブジェクトの種類を指定する定数。 適切な値の説明については、Windows SDK の GetStockObject のパラメーター fnObject を参照してください。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

ストック ペンなど CPen 、Windows GDI オブジェクト型に対応する派生クラスのいずれかを使用して、この関数を呼び出します。

CGdiObject::D eleteObject

Windows GDI オブジェクトに関連付けられているすべてのシステム 記憶域を解放することによって、添付の Windows GDI オブジェクトをメモリから削除します。

BOOL DeleteObject();

戻り値

GDI オブジェクトが正常に削除された場合は 0 以外。それ以外の場合は 0。

解説

オブジェクトに CGdiObject 関連付けられているストレージは、この呼び出しの影響を受けません。 アプリケーションは、デバイス コンテキストでCGdiObject現在選択されているオブジェクトを呼び出DeleteObjectさないでください。

パターン ブラシを削除しても、ブラシに関連付けられているビットマップは削除されません。 ビットマップは個別に削除する必要があります。

CGdiObject::D eleteTempMap

アイドル時間ハンドラーによって自動的にCWinApp呼び出され、DeleteTempMapによって作成FromHandleされたすべての一時CGdiObjectオブジェクトを削除します。

static void PASCAL DeleteTempMap();

解説

DeleteTempMap オブジェクトを削除する前に、一時 CGdiObject オブジェクトにアタッチされている Windows GDI オブジェクトを CGdiObject デタッチします。

// DeleteTempMap() is a static member and so does not need to
// be called within the scope of an instantiated CGdiObject object.
CGdiObject::DeleteTempMap();

CGdiObject::D etach

オブジェクトから Windows GDI オブジェクトを CGdiObject デタッチし、Windows GDI オブジェクトへのハンドルを返します。

HGDIOBJ Detach();

戻り値

デタッチされた Windows GDI オブジェクトへの A HANDLE 。GDI オブジェクトがアタッチされていない場合は NULL。

CGdiObject::FromHandle

Windows GDI オブジェクトへのハンドルを CGdiObject 指定したオブジェクトへのポインターを返します。

static CGdiObject* PASCAL FromHandle(HGDIOBJ hObject);

パラメーター

hObject
Windows GDI オブジェクトへのハンドル。

戻り値

一時的または永続的な A への CGdiObject ポインター。

解説

CGdiObjectオブジェクトがまだ Windows GDI オブジェクトにアタッチされていない場合は、一時CGdiObjectオブジェクトが作成され、アタッチされます。

この一時 CGdiObject オブジェクトは、アプリケーションがイベント ループで次にアイドル時間を過ぎ、その時点ですべての一時グラフィック オブジェクトが削除されるまでのみ有効です。 もう 1 つの言い方は、一時オブジェクトが 1 つのウィンドウ メッセージの処理中にのみ有効であるという点です。

CGdiObject::GetObject

バッファーに、指定したオブジェクトを定義するデータを格納します。

int GetObject(
    int nCount,
    LPVOID lpObject) const;

パラメーター

nCount
lpObject バッファーにコピーするバイト数を 指定します

lpObject
情報を受信するユーザー指定のバッファーを指します。

戻り値

取得されたバイト数。エラーが発生した場合は 0。

解説

この関数は、次の一覧に示すように、グラフィック オブジェクトの型に依存する型のデータ構造を取得します。

オブジェクト バッファーの種類
CPen LOGPEN
CBrush Logbrush
CFont Logfont
CBitmap ビットマップ
CPalette WORD
CRgn サポートされていません

オブジェクトがオブジェクトの CBitmap 場合は、 GetObject ビットマップの幅、高さ、および色の書式情報のみを返します。 実際のビットは、CBitmap::GetBitmapBits を使用して取得できます。

オブジェクトがオブジェクトの CPalette 場合は、 GetObject パレット内のエントリの数を指定する WORD を取得します。 この関数は、パレットを定義する LOGPALETTE 構造体を取得しません。 アプリケーションは、CPalette::GetPaletteEntries を呼び出すことによってパレット エントリに関する情報を取得できます。

CGdiObject::GetObjectType

GDI オブジェクトの型を取得します。

UINT GetObjectType() const;

戻り値

成功した場合のオブジェクトの型。それ以外の場合は 0。 値は次のいずれかになります。

  • OBJ_BITMAP ビットマップ

  • OBJ_BRUSH ブラシ

  • OBJ_FONT フォント

  • OBJ_PAL パレット

  • OBJ_PEN ペン

  • 拡張ペンOBJ_EXTPEN

  • OBJ_REGION リージョン

  • OBJ_DC デバイス コンテキスト

  • OBJ_MEMDC メモリ デバイス コンテキスト

  • メタファイルのOBJ_METAFILE

  • メタファイル デバイス コンテキストのOBJ_METADC

  • 拡張メタファイルのOBJ_ENHMETAFILE

  • 拡張メタファイル デバイス コンテキストのOBJ_ENHMETADC

CGdiObject::GetセーフHandle

m_hObject NULL でない限りthis、NULL を返します。この場合は NULL が返されます。

HGDIOBJ GetSafeHandle() const;

戻り値

添付された Windows GDI オブジェクトへのハンドル。それ以外の場合、オブジェクトがアタッチされていない場合は NULL。

解説

これは一般的なハンドル インターフェイス パラダイムの一部であり、NULL がハンドルの有効または特別な値である場合に便利です。

CWnd::IsWindowEnabled例を参照してください。

CGdiObject::m_hObject

このオブジェクトにアタッチされている HBITMAP、HRGN、HBRUSH、HPEN、HPALETTE、または HFONT を含むハンドル。

HGDIOBJ m_hObject;

CGdiObject::operator !=

2 つの GDI オブジェクトが論理的に等しくないかどうかを判断します。

BOOL operator!=(const CGdiObject& obj) const;

パラメーター

obj
既存 CGdiObjectのオブジェクトへのポインター。

解説

左側の GDI オブジェクトが右側の GDI オブジェクトと等しくないかどうかを判断します。

CGdiObject::operator ==

2 つの GDI オブジェクトが論理的に等しいかどうかを判断します。

BOOL operator==(const CGdiObject& obj) const;

パラメーター

obj
既存 CGdiObjectの .

解説

左側の GDI オブジェクトが右側の GDI オブジェクトと等しいかどうかを判断します。

CGdiObject::operator HGDIOBJ

添付された Windows GDI オブジェクトへの HANDLE を取得します。それ以外の場合、オブジェクトがアタッチされていない場合は NULL。

operator HGDIOBJ() const;

CGdiObject::UnrealizeObject

ブラシの原点をリセットするか、論理パレットをリセットします。

BOOL UnrealizeObject();

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

クラスのCGdiObjectメンバー関数である一方UnrealizeObjectで、呼び出すのはオブジェクトにCPaletteCBrushしてのみ行う必要があります。

オブジェクトの場合 CBrush は、 UnrealizeObject 次にデバイス コンテキストに選択されるときに、指定されたブラシの原点をリセットするようにシステムに指示します。 オブジェクトがオブジェクトの CPalette 場合は、 UnrealizeObject 以前に実現されていないようにパレットを実現するようにシステムに指示します。 アプリケーションが次に指定したパレットに対して CDC::RealizePalette 関数を呼び出す場合、システムは論理パレットをシステム パレットに完全に再マップします。

この関数は UnrealizeObject 在庫オブジェクトと共に使用しないでください。 この関数はUnrealizeObject、新しいブラシの原点が設定されるたびに呼び出す必要があります (CDC::SetBrushOrg 関数を使用)。 この関数は UnrealizeObject 、現在選択されているブラシまたは現在選択されている任意の表示コンテキストのパレットに対して呼び出さないでください。

関連項目

階層図
CBitmap クラス
CBrush クラス
CFont クラス
CPalette クラス
CPen クラス
CRgn クラス