色や模様がついた透明なブラシで四角形などを描画する.
void CSquare::DrawSquare(CDC* pDC, CPoint point1, CPoint point2)
{
CBitmap BitMap;
CBrush brush;
CBrush* pOldBrush;
// パターンブラシでは Bitmap の色となるので SetTExtColor() や SetBkColor() などは必要ない
// リソースに登録した8x8 のビットマップをもとにブラシを作成
BitMap.LoadBitmap(IDB_HATCH_01);
brush.CreatePatternBrush(&BitMap);
// ビットマップの白の部分を透明にする
int OldROP2 = pDC->GetROP2();
pDC->SetROP2(R2_MASKPEN);
// 描画と後始末など
pOldBrush = pDC->SelectObject(&brush);
pDC->Rectangle(point1.x, point1.y, point2.x, point2.y);
pDC->SelectObject(pOldBrush);
pDC->SetROP2(OldROP2);
}
参照