您的位置:首页 > 编程语言 > C语言/C++

mfc使用不同类型的画刷填充矩形

2014-12-06 20:11 323 查看
画刷是在画刷画封闭曲线时用来填充的颜色,MFC的CBrush类封装了windowsGDI画刷,通过它,对CDC类所绘制的封闭图形的填充,可以填充颜色和纹理。

首先给出本次的demo



下面给出核心代码:

在OnDraw函数中实现绘图操作

void CMFCApplication15View::OnDraw(CDC* pDC)

{
CMFCApplication15Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;

// TODO:  在此处为本机数据添加绘制代码

CBrush brush[7], *pOldbrush;

brush[0].CreateSolidBrush(RGB(200, 0, 200));

brush[1].CreateHatchBrush(HS_BDIAGONAL, RGB(128, 0, 0));

brush[2].CreateHatchBrush(HS_CROSS, RGB(0, 0, 128));

brush[3].CreateHatchBrush(HS_DIAGCROSS, RGB(0, 128, 0));

brush[4].CreateHatchBrush(HS_FDIAGONAL, RGB(128, 128, 0));

brush[5].CreateHatchBrush(HS_VERTICAL, RGB(0, 128, 128));

brush[6].CreateHatchBrush(HS_HORIZONTAL, RGB(128, 128, 128));

pOldbrush = pDC->SelectObject(&brush[0]);

pDC->Rectangle(10, 10, 160, 110);
pDC->TextOutW(10, 115, _T("实心刷子"));

pDC->SelectObject(&brush[1]);
pDC->Rectangle(180, 10, 330, 110);
pDC->TextOutW(180, 115, _T("HS_BDIAGONAL"));

pDC->SelectObject(&brush[2]);
pDC->Rectangle(350, 10, 500, 110);
pDC->TextOutW(350, 115, _T("HS_CROSS"));

pDC->SelectObject(&brush[3]);
pDC->Rectangle(520, 10, 670, 110);
pDC->TextOutW(520, 115, _T("HS_DIAGCROSS"));

pDC->SelectObject(&brush[4]);
pDC->Rectangle(10, 140, 160, 240);
pDC->TextOutW(10, 245, _T("HS_FDIAGONAL"));

pDC->SelectObject(&brush[5]);
pDC->Rectangle(180, 140, 330, 240);
pDC->TextOutW(180, 245, _T("HS_VERTICAL"));

pDC->SelectObject(&brush[6]);
pDC->Rectangle(350, 140, 500, 240);
pDC->TextOutW(350, 245, _T("HS_BERTICAL"));

pDC->SelectObject(pOldbrush);

for (int i = 0; i < 7; i++){
brush[i].DeleteObject();
}

}

除此之外,MFC中还可以使用位图画刷来进行封闭图形的填充,方法如上。

CBitmap bitmap;

bitmap.LoadBitamp(IDB_BITMAP1);

brush.CreatePatternBrush(&bitmap);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  MFC c++