CBrush::CBrush
更新 : 2007 年 11 月
CBrush オブジェクトを構築します。
CBrush( );
CBrush(
COLORREF crColor
);
CBrush(
int nIndex,
COLORREF crColor
);
explicit CBrush(
CBitmap* pBitmap
);
パラメータ
crColor
RGB カラーを使ってブラシの前景色を指定します。ハッチ ブラシの場合は、このパラメータがハッチング色を指定します。nIndex
ブラシのハッチ スタイルを指定します。次のいずれかの値になります。HS_BDIAGONAL 45°の右下がりハッチ
HS_CROSS 水平と垂直の格子ハッチ
HS_DIAGCROSS 45°の斜め格子ハッチ
HS_FDIAGONAL 45°の右上がりハッチ
HS_HORIZONTAL 水平線ハッチ
HS_VERTICAL 垂直線ハッチ
pBitmap
ブラシが描画するビットマップを指定する CBitmap オブジェクトへのポインタ。
解説
CBrush には 4 つのオーバーロードされたコンストラクタがあります。引数のないコンストラクタは、初期化されない CBrush オブジェクトを構築します。このオブジェクトは使う前に初期化する必要があります。
引数なしのコンストラクタを使うときは、構築した CBrush オブジェクトを CreateSolidBrush、CreateHatchBrush、CreateBrushIndirect、CreatePatternBrush、CreateDIBPatternBrush の各関数を使って初期化する必要があります。引数のあるコンストラクタのいずれかを使ったときは、初期化の必要はありません。引数付きのコンストラクタを使って構築するときに、エラーが検知されると例外処理を実行します。引数なしのコンストラクタではエラーは発生しません。
COLORREF パラメータを 1 つ持つコンストラクタは、指定された色のソリッド ブラシを 1 つ構築します。色は RGB 値で指定しますが、WINDOWS.H の RGB マクロを使用して作成することもできます。
2 つのパラメータを持つコンストラクタを使うと、ハッチ ブラシを構築します。nIndex パラメータには、ハッシュ パターンのインデックスを指定します。crColor パラメータには、色を指定します。
CBitmap をパラメータに持つコンストラクタは、パターン ブラシを構築します。パラメータでビットマップを識別します。ビットマップは、CBitmap::CreateBitmap、CBitmap::CreateBitmapIndirect、CBitmap::LoadBitmap、CBitmap::CreateCompatibleBitmap の各関数のいずれかで作成されているものとします。塗りつぶしパターンに使われるビットマップの最小サイズは、8 ピクセル × 8 ピクセルです。
使用例
// CBrush::CBrush.
CBrush brush1; // Must initialize!
brush1.CreateSolidBrush(RGB(0, 0, 255)); // Blue brush.
CBrush* pTempBrush = NULL;
CBrush OrigBrush;
CRect rc;
GetClientRect(&rc);
ScreenToClient(&rc);
pTempBrush = (CBrush*)pDC->SelectObject(&brush1);
// Save original brush.
OrigBrush.FromHandle((HBRUSH)pTempBrush);
// Paint upper left corner with blue brush.
pDC->Rectangle(0, 0, rc.Width() / 2, rc.Height() / 2);
// These constructors throw resource exceptions.
try
{
// CBrush::CBrush(COLORREF crColor)
CBrush brush2(RGB(255, 0, 0)); // Solid red brush.
// CBrush::CBrush(int nIndex, COLORREF crColor)
// Hatched green brush.
CBrush brush3(HS_DIAGCROSS, RGB(0, 255, 0));
// CBrush::CBrush(CBitmap* pBitmap)
CBitmap bmp;
// Load a resource bitmap.
bmp.LoadBitmap(IDB_BRUSH);
CBrush brush4(&bmp);
pTempBrush = (CBrush*)pDC->SelectObject(&brush2);
// Paint upper right corner with red brush.
pDC->Rectangle(rc.Width() / 2, 0, rc.Width(),
rc.Height() / 2);
pTempBrush = (CBrush*)pDC->SelectObject(&brush3);
// Paint lower left corner with green hatched brush.
pDC->Rectangle(0, rc.Height() / 2, rc.Width() / 2,
rc.Height());
pTempBrush = (CBrush*)pDC->SelectObject(&brush4);
// Paint lower right corner with resource brush.
pDC->Rectangle(rc.Width() / 2, rc.Height() / 2,
rc.Width(), rc.Height());
}
catch(CResourceException* e)
{
e->ReportError();
e->Delete();
}
// Reselect original brush into device context.
pDC->SelectObject(&OrigBrush);
必要条件
ヘッダー : afxwin.h