MFC画刷又三种基本类型:单色,带阴影线和带图案,只要将COLORREF的值传递给CBrush构造函数就可以创建一个单色画刷了;
CBrush brush(RGB(255,0,0));
或者可以创建一个没有初始化的CBrush对象,然后调用CBrush::CreateSolidBrush,用两步创建一个单色画刷:
CBrush brush;
brush.CreateSolidBrush(RGB(255,0,0));
这两个方法创建的颜色都是亮红的单色画刷;
还可以通过将LOGBRUSH初始化调用CBrush::CreateBrushIndirect来创建画刷;和CPen构造函数一样,如果GDI内存不足所有创建画刷的CBrush构造函数都会产生资源异常问题,因而也就不能创建画刷了;
将阴影线索引索引和COLORREF值传送给CBrush的构造函数或调用CBrush::CreateHatch-Brush都能创建一个阴影画刷,语句:
CBrush brush(HS_DIAGCROSS,RGB(255,0,0));
创建的阴影线画刷与下面语句创建相同,其阴影线是由倾斜45度的垂直相交线构成的:
CBrush brush;
brush.CreateHatchBrush(HS_DIAGCROSS,RGB(255,0,0));
dc. SelectObject(&brush);
dc.SetBkColor(RGB(192,192,192));
dc.Rectangle(0,0,100,100);
画了一个100 *100单位的正方形,并在浅灰色背景下填充白色的交叉线。语句
CBrush brush(HS_DIAGCROSS,RGB(0,0,0));
dc.SelectObject(&brush);
dc.SetBkMode(TRANSPARENT);
dc.Rectangle(0,0,100,100);
在当前的背景下画了一个填充着黑色交叉线的矩形;
GDI画刷和CBrush类
最新推荐文章于 2022-05-19 12:42:38 发布