GDI画刷和CBrush类

博客介绍了MFC画刷的三种基本类型,即单色、带阴影线和带图案。详细说明了使用CBrush类创建单色画刷、阴影画刷的多种方法,如传递COLORREF值、调用CreateSolidBrush等,同时提到创建画刷时可能因GDI内存不足产生资源异常问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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);
在当前的背景下画了一个填充着黑色交叉线的矩形;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值