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 | FromHandle によって作成された一時的なCGdiObject オブジェクトを削除します。 |
CGdiObject::D etach | CGdiObject オブジェクトから Windows GDI オブジェクトをデタッチし、Windows GDI オブジェクトへのハンドルを返します。 |
CGdiObject::FromHandle | Windows GDI オブジェクトへのハンドルを指定した CGdiObject オブジェクトへのポインターを返します。 |
CGdiObject::GetObject | バッファーに、 CGdiObject オブジェクトにアタッチされている Windows GDI オブジェクトを記述するデータを格納します。 |
CGdiObject::GetObjectType | GDI オブジェクトの型を取得します。 |
CGdiObject::GetSafeHandle | this が NULL でない限り、m_hObject を返します。その場合は 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
を直接作成することはありません。 代わりに、 CPen
や CBrush
など、派生クラスの 1 つからオブジェクトを作成します。
CGdiObject
の詳細については、「Graphic オブジェクト」を参照してください。
継承階層
CGdiObject
要件
ヘッダー: afxwin.h
CGdiObject::Attach
Windows GDI オブジェクトを CGdiObject
オブジェクトにアタッチします。
BOOL Attach(HGDIOBJ hObject);
パラメーター
hObject
Windows GDI オブジェクトへのハンドル (HPEN や HBRUSH など)。
戻り値
添付ファイルが成功した場合は 0 以外。それ以外の場合は 0。
CGdiObject::CGdiObject
CGdiObject
オブジェクトを構築します。
CGdiObject();
解説
CGdiObject
を直接作成することはありません。 代わりに、 CPen
や Cbrush
など、派生クラスの 1 つからオブジェクトを作成します。
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
オブジェクトを削除する前に、一時的なCGdiObject
オブジェクトにアタッチされている Windows GDI オブジェクトをデタッチします。
例
// 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
CGdiObject
オブジェクトから Windows GDI オブジェクトをデタッチし、Windows GDI オブジェクトへのハンドルを返します。
HGDIOBJ Detach();
戻り値
デタッチされた Windows GDI オブジェクトへの HANDLE
。GDI オブジェクトがアタッチされていない場合は NULL。
CGdiObject::FromHandle
Windows GDI オブジェクトへのハンドルを指定した CGdiObject
オブジェクトへのポインターを返します。
static CGdiObject* PASCAL FromHandle(HGDIOBJ hObject);
パラメーター
hObject
Windows GDI オブジェクトへのハンドル。
戻り値
一時的または永続的な CGdiObject
へのポインター。
解説
CGdiObject
オブジェクトがまだ Windows GDI オブジェクトにアタッチされていない場合は、一時的なCGdiObject
オブジェクトが作成され、アタッチされます。
この一時 CGdiObject
オブジェクトは、アプリケーションがイベント ループで次にアイドル時間を過ぎ、その時点ですべての一時グラフィック オブジェクトが削除されるまでのみ有効です。 もう 1 つの言い方は、一時オブジェクトが 1 つのウィンドウ メッセージの処理中にのみ有効であるという点です。
CGdiObject::GetObject
バッファーに、指定したオブジェクトを定義するデータを格納します。
int GetObject(
int nCount,
LPVOID lpObject) const;
パラメーター
nCount
lpObject バッファーにコピーするバイト数を指定します。
lpObject
情報を受信するユーザー指定のバッファーを指します。
戻り値
取得されたバイト数。エラーが発生した場合は 0。
解説
この関数は、次の一覧に示すように、グラフィック オブジェクトの型に依存する型のデータ構造を取得します。
Object | バッファーの種類 |
---|---|
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::GetSafeHandle
this
が NULL でない限り、m_hObject
を返します。その場合は 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 を返します。
解説
UnrealizeObject
はCGdiObject
クラスのメンバー関数ですが、CBrush
オブジェクトまたはCPalette
オブジェクトでのみ呼び出す必要があります。
CBrush
オブジェクトの場合、UnrealizeObject
は、次に選択されたブラシがデバイス コンテキストにリセットされるときに、指定されたブラシの原点をリセットするようにシステムに指示します。 オブジェクトが CPalette
オブジェクトの場合、 UnrealizeObject
は、以前に実現されていないようにパレットを実現するようにシステムに指示します。 アプリケーションが次に指定したパレットの CDC::RealizePalette 関数を呼び出す場合、システムは論理パレットをシステム パレットに完全に再マップします。
UnrealizeObject
関数はストック オブジェクトと共に使用しないでください。 UnrealizeObject
関数は、新しいブラシの原点が設定されるたびに呼び出す必要があります (CDC::SetBrushOrg 関数を使用)。 UnrealizeObject
関数は、現在選択されているブラシまたは現在選択されている任意の表示コンテキストのパレットに対して呼び出さないでください。
関連項目
階層図
CBitmap クラス
CBrush クラス
CFont クラス
CPalette クラス
CPen クラス
CRgn クラス