VC++开发GIS系统(28)关于VC++的CBrush类

在前一篇教程VC++开发GIS系统(27)设置点的填充颜色讲到了填充,既然说到了填充,就必然要说到CBrush这个类,下面对这个类做一个简单的介绍。

构造函数

CBrush(COLORREF crColor);

CBrush(int nIndex, COLORREF crColor);

explicit CBrush(CBitmap* pBitmap);

构造函数说明

单色:填充单色,创建时只需给出颜色参数即可;

阴影线:填充的是阴影线,此时需要指定阴影线的颜色以及线的背景色、背景模式;

其中nIndex指定阴影线的风格:

HS_BDIAGONAL:附对角线型
HS_FDIAGONAL:主对角线型
HS_HORIZONTAL:水平线型
HS_VERTICAL:垂直线型
HS_CROSS:水平垂直交叉型
HS_DIAGCROSS:斜交叉型

位图填充:使用位图(可以自定义)来填充封闭区域;

使用示例

// 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);
VC++开发GIS系统(27)设置点的填充颜色 VC++开发GIS系统(29)关于鼠标左键的联想1

作者:,GIS爱好者。
分享本文,请您带上本文链接
分享到:

发表评论