次の方法で共有


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 オブジェクトを CreateSolidBrushCreateHatchBrushCreateBrushIndirectCreatePatternBrushCreateDIBPatternBrush の各関数を使って初期化する必要があります。引数のあるコンストラクタのいずれかを使ったときは、初期化の必要はありません。引数付きのコンストラクタを使って構築するときに、エラーが検知されると例外処理を実行します。引数なしのコンストラクタではエラーは発生しません。

COLORREF パラメータを 1 つ持つコンストラクタは、指定された色のソリッド ブラシを 1 つ構築します。色は RGB 値で指定しますが、WINDOWS.H の RGB マクロを使用して作成することもできます。

2 つのパラメータを持つコンストラクタを使うと、ハッチ ブラシを構築します。nIndex パラメータには、ハッシュ パターンのインデックスを指定します。crColor パラメータには、色を指定します。

CBitmap をパラメータに持つコンストラクタは、パターン ブラシを構築します。パラメータでビットマップを識別します。ビットマップは、CBitmap::CreateBitmapCBitmap::CreateBitmapIndirectCBitmap::LoadBitmapCBitmap::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

参照

参照

CBrush クラス

階層図

CBrush::CreateSolidBrush

CBrush::CreateHatchBrush

CBrush::CreateBrushIndirect

CBrush::CreatePatternBrush

CBrush::CreateDIBPatternBrush

CGdiObject::CreateStockObject

その他の技術情報

CBrush のメンバ