马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
LOGBRUSH 结构
LOGBRUSH 结构定义了逻辑画刷的样式,颜色和图案。
CreateBrushIndirect 函数和 ExtCreatePen 函数需要使用到该结构。
结构原型:
typedef struct tagLOGBRUSH {
UINT lbStyle;
COLORREF lbColor;
ULONG_PTR lbHatch;
} LOGBRUSH, *PLOGBRUSH;
成员解析:
成员 | 含义 | lbStyle | 指定画刷的样式,该成员决定着 Windows 如何解释另外的两个成员:
值 | 含义 | BS_DIBPATTERN | 1. 带图案的刷子,由设备无关位图(DIB)来定义
2. lbHatch 成员应该是 DIB 的句柄 | BS_DIBPATTERN8X8 | 同 BS_DIBPATTERN | BS_DIBPATTERNPT | 1. 带图案的刷子,由设备无关位图(DIB)来定义
2. lbHatch 成员应该是指向 DIB 的指针 | BS_HATCHED | 阴影画刷 | BS_HOLLOW | 空画刷 | BS_NULL | 同 BS_HOLLOW | BS_PATTERN | 由内存位图定义的画刷 | BS_PATTERN8X8 | 同 BS_PATTERN | BS_SOLID | 实心画刷 | | lbColor | 1. 指定画刷的颜色
2. 如果 lbStyle 成员的值是 BS_HOLLOW 或 BS_PATTERN,该值被忽略
3. 如果 lbStyle 成员的值是 BS_DIBPATTERN 或 BS_DIBPATTERNPT,该值的低 8 位指定 BITMAPINFO 结构中的 bmiColors 成员,包含明确的 RGB 值或当前调色板的索引值:
值 | 含义 | DIB_PAL_COLORS | 包含了当前使用的逻辑调色板中的 16 位索引数组的颜色表 | DIB_RGB_COLORS | 包含了明确的 RGB 值的颜色表 | 4. 如果 lbStyle 成员的值是 BS_HATCHED 或 BS_SOLID,该值是一个 COLORREF 类型的颜色值(使用 RGB 宏创建 COLORREF 类型) | lbHatch | 1. 指定画刷的阴影样式
2. 如果 lbStyle 成员的值是 BS_DIBPATTERN,该值是一个 DIB 的句柄。为了获得这个句柄,应用程序需要调用 GlobalAlloc 函数(GMEM_MOVEABLE 标志)或调用 LocalAlloc 函数(LMEM_MOVEABLE 标志)分配内存块,然后填充 DIB。
3. 如果 lbStyle 成员的值是 BS_DIBPATTERNPT,该值是一个指向 DIB 的指针。该指针指向通过调用 LocalAlloc 函数(LMEM_FIXED 标志)或 GlobalAlloc 函数(GMEM_FIXED 标志)创建的内存块,或通过调用 LocalLock (handle_to_the_dib) 函数返回。
4. 如果 lbStyle 成员的值是 BS_HATCHED,该值指定阴影的样式:
值 | 含义 | HS_BDIAGONAL | 45 度向上,从左至右的阴影 | HS_CROSS | 水平和垂直交叉阴影 | HS_DIAGCROSS | 45 度交叉阴影 | HS_FDIAGONAL | 45 度向下,自左至右阴影 | HS_HORIZONTAL | 水平阴影 | HS_VERTICAL | 垂直阴影 | 5. 如果 lbStyle 成员的值是 BS_PATTERN,该值是一个定义图案位图的句柄(该位图不能是 CreateDIBSection 函数创建的 DIB 位图)
6. 如果 lbStyle 成员的值是 BS_SOLID 或 BS_HOLLOW,该值被忽略 |
备注:
1. DIB(设备无关位图文件格式)包含 BITMAPINFO 结构以及紧跟着的存储像素阵列的数组。
2. 尽管 lbColor 成员指定了阴影画刷的前景色,但调用 SetBkMode 函数和 SetBkColor 函数可以控制背景颜色。
【API档案】版权归鱼C工作室(www.fishc.com)所有,转载请注明来源。
|