Last Updated 2004/04/01
Programming Tips Visual C++ MFC GDI  索 引 
色付きや模様付きの透明ブラシ
2004/04/01

色や模様がついた透明なブラシで四角形などを描画する.

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);
}


参照
前後のTips
色付きや模様付きの透明ブラシ

DSS ProgrammingTipsCGI Ver2.02