CDC::SelectObject
更新 : 2007 年 11 月
デバイス コンテキストに対してオブジェクトを選択します。
CPen* SelectObject(
CPen* pPen
);
CBrush* SelectObject(
CBrush* pBrush
);
virtual CFont* SelectObject(
CFont* pFont
);
CBitmap* SelectObject(
CBitmap* pBitmap
);
int SelectObject(
CRgn* pRgn
);
CGdiObject* SelectObject(
CGdiObject* pObject
);
パラメータ
pPen
選択する CPen オブジェクトへのポインタ。pBrush
選択する CBrush オブジェクトへのポインタ。pFont
選択する CFont オブジェクトへのポインタ。pBitmap
選択する CBitmap オブジェクトへのポインタ。pRgn
選択する CRgn オブジェクトへのポインタ。pObject
選択する CGdiObject オブジェクトへのポインタ。
戻り値
置き換えられるオブジェクトへのポインタ。これは使用する関数の形式によって決まる、CPen のような CGdiObject クラスからの派生クラスのオブジェクトの 1 つへのポインタです。エラーが発生した場合は NULL を返します。この関数は、一時オブジェクトへのポインタを返すこともあります。この一時オブジェクトは、1 つの Windows メッセージを処理している間だけ有効です。詳細については、「CGdiObject::FromHandle」を参照してください。
パラメータに領域を指定する形式のメンバ関数は、SelectClipRgn メンバ関数と同じタスクを実行します。戻り値は以下のいずれかです。
COMPLEXREGION 新しいクリップ領域には、重なり合った境界線があります。
ERROR デバイス コンテキストまたは領域が無効です。
NULLREGION 新しいクリップ領域は空です。
SIMPLEREGION 新しいクリップ領域には重なり合う境界線がありません。
解説
CDC クラスでは、ペン、ブラシ、フォント、ビットマップ、領域の 5 つの GDI オブジェクトを特定して選択する形式があります。新しく選択されたオブジェクトは、同じタイプの直前のオブジェクトと置き換えられます。たとえば、一般的な形式の SelectObject のパラメータ pObject が CPen オブジェクトを指しているときは、pObject で指定されたペンで現在のペンを置き換えます。
ビットマップはメモリ デバイス コンテキストだけに選択でき、同時に複数のメモリ デバイス コンテキストに対しては選択できません。ビットマップのフォーマットは、モノクロかデバイス コンテキストに互換性のあるものである必要があります。それ以外の場合は、SelectObject 関数はエラーを返します。
Windows 3.1 以降では、メタファイルで使っても SelectObject 関数は同じ値を返します。以前のバージョンの Windows では、メタファイルで使われた場合は、成功したときは 0 以外の値を、それ以外は 0 を返します。
必要条件
ヘッダー : afxwin.h