CBrush画刷定义了一种位图形式的像素,利用它可对区域内部填充颜色。函数
该类封装了Windows的图形设备接口(GDI)刷子。经过该类构造的CBrush对象能够传递给任何一个须要画刷的CDC成员函数。该画刷能够是实线、阴影线和某种图案spa
1. 构造CBrush对象指针
该类具备4个重载的构造函数,下面分别加以介绍对象
CBrush;接口
CBrush(COLORREF crColor);ci
CBrush(int nIndex,COLORREF crColor);原型
CBrush(CBitmap* pBitmap);it
第一个构造函数构造了一支未被初始化的画刷,若是用户使用了该构造函数,则必须对所获得的CBrush对象进行初始化。table
其余重的构造函数分别使用指定的颜色、限影线模式和颜色或位图指针来构造一支以被初始化的画刷。若是在调用过程当中遇到错误,则会产生一个异常。变量
下面是对这些构造函数所用到的参数的详细说明:
参数crColor:以RGB颜色指定画刷的前景色。若是是表示阴影线的画刷,则该参数指定的是阴影线的颜色。
参数nIndex:指定了画刷的阴影线的风格
画刷的阴影线的样式
阴影线参数值 | 注释 |
HS_BDIAGONAL | 从左到右向下成45度的对角线 |
HS_CROSS | 水平线和垂直线相关的十字交叉线 |
HS_DIAGCROSS | 夹角为45度的斜十字交叉线 |
HS_FDIAGONAL | 从左到右向上成45度的对角线 |
HS_HORIZONTAL | 水平阴影线 |
HS_VERTICAL | 垂直阴影线 |
参数pBitmap:指向一个CBitmap对象,该对象指定了一幅画刷用来绘图的位图。
2。初始化CBrush对象
除了使用构造函数建立初始化过的画刷对象,还有如下几种初始化方法:
调用CBrush::CreateSolidBrush()成员函数来初始化实画刷,以便使用纯色来填充区域内部,该函数原型声明以下:
BOOL CreateSolidBrush(COLORREF crColor)
参数crColor指定了由结构COLORREF定义的画刷颜色,该颜色值是由定义在WINDOWS.H文件中的RGB宏指定的。
调用CBrush::CreateHatchBrush()成员函数来初始化阴影画刷,其原型声明以下:
BOOL CreateHatchBrush(int nIndex,COLORREF crColor);
参数与构造函数中的参数彻底相同。
调用CBrush::CreatePatternBrush()成员函数初始化一个图形画刷,当使用该画刷填充图形时,图形内部将用位图一个接一个的填充。该函数原型声明以下:
BOOL CreatePatternBrush(CBitmap* pBitmap);
参数如前所述。
使用图形画刷须要注意的是在删除图形画刷时,与画刷相联系的位图并未被删除。位图必须被单独地删除。
调用CBrush::CreateBrushIndirect()成员函数来建立画刷对象,但画刷的属性并非直接经过函数参数形式给出的,而是经过LOGBRUSH结构的成员变量间接的给出的。该函数原型声明以下:
BOOL CreateBrushIndirect(const LOGBURSH* lpLogBrush);
其中的lpLogBrushIndirect(const LOGBURSH* lpLogBrush);
其中的lpLogBrush参数是指向LOGBRUSH结构的指针。LOGBRUSH结构中包含有关画刷的信息。
函数若是调用成功,则返回非零值,不然返回零。
另外咱们还能够使用CBrush::CreateDIBPatternBrush()成员函数来建立一个由设备无关位图(DIB)指定的图形画刷,该画刷能够被选进任何一种设备环境以便支持光栅操做。
应用CBrush对象进行绘图
方法一:使用成员函数CreateBrushIndirect来建立一个蓝色,风格为BS_HATCHED画刷对象来绘制一个具备十字交叉阴影线的矩形区域。
方法二:使用第二种构函数来建立一支绿色系统缺省的画刷并绘制一个不带任何阴影线的矩形区域
方法三:使用第三种构函数来建立一支红色,样式为HS_BDIAGONAL的画刷并绘制一个具备阴影线的矩形区域。