wingdi.h) (LOGBRUSH32 结构
LOGBRUSH32结构定义物理画笔的样式、颜色和图案。 它类似于 LOGBRUSH,但它用于维护 32 位平台和 64 位平台之间的兼容性,当我们在一个平台上录制图元文件记录,然后在另一个平台上播放它。 因此,它仅在 EMRCREATEBRUSHINDIRECT 中使用。 如果代码仅位于一个平台上, 则 LOGBRUSH 就足够了。
语法
typedef struct tagLOGBRUSH32 {
UINT lbStyle;
COLORREF lbColor;
ULONG lbHatch;
} LOGBRUSH32, *PLOGBRUSH32, *NPLOGBRUSH32, *LPLOGBRUSH32;
成员
lbStyle
画笔样式。 lbStyle 成员必须是以下样式之一。
值 | 含义 |
---|---|
BS_DIBPATTERN | 由与设备无关的位图 (DIB) 规范定义的图案画笔。 如果 lbStyle 是BS_DIBPATTERN, 则 lbHatch 成员包含已打包 DIB 的句柄。 有关详细信息,请参阅 lbHatch 中的讨论。 |
BS_DIBPATTERN8X8 | 与 BS_DIBPATTERN 相同。 |
BS_DIBPATTERNPT | 由与设备无关的位图 (DIB) 规范定义的图案画笔。 如果 lbStyle 是BS_DIBPATTERNPT, 则 lbHatch 成员包含指向已打包 DIB 的指针。 有关详细信息,请参阅 lbHatch 中的讨论。 |
BS_HATCHED | 阴影画笔。 |
BS_HOLLOW | 空心画笔。 |
BS_NULL | 与 BS_HOLLOW 相同。 |
BS_PATTERN | 内存位图定义的图案画笔。 |
BS_PATTERN8X8 | 与 BS_PATTERN 相同。 |
BS_SOLID | 实心画笔。 |
lbColor
要绘制画笔的颜色。 如果 lbStyle 是BS_HOLLOW或BS_PATTERN样式,则会忽略 lbColor 。
如果 lbStyle 是BS_DIBPATTERN或BS_DIBPATTERNPT,则 lbColor 的低序字指定 BITMAPINFO 结构的 bmiColors 成员是否包含显式的红色、绿色、蓝色 (RGB) 值或索引到当前实现的逻辑调色板中。 lbColor 成员必须是以下值之一。
值 | 含义 |
---|---|
DIB_PAL_COLORS | 颜色表由当前实现的逻辑调色板中的 16 位索引数组组成。 |
DIB_RGB_COLORS | 颜色表包含文字 RGB 值。 |
如果 lbStyle 是BS_HATCHED或BS_SOLID, 则 lbColor 是 COLORREF 颜色值。 若要创建 COLORREF 颜色值,请使用 RGB 宏。
lbHatch
阴影样式。 含义取决于 lbStyle 定义的画笔样式。
如果 lbStyle 是BS_DIBPATTERN, 则 lbHatch 成员包含已打包 DIB 的句柄。 为了获取此句柄,应用程序使用 GMEM_MOVEABLE ( 或具有 LMEM_MOVEABLE) 的 LocalAlloc 调用 GlobalAlloc 函数来分配内存块,然后使用打包的 DIB 填充内存。 打包的 DIB 由 BITMAPINFO 结构组成,后跟定义位图像素的字节数组。
如果 lbStyle 是BS_DIBPATTERNPT, 则 lbHatch 成员包含指向已打包 DIB 的指针。 指针派生自 LocalAlloc 创建的内存块(设置了 LMEM_FIXED),或由具有GMEM_FIXED集的 GlobalAlloc 创建的内存块,或者它是由 LocalLock (handle_to_the_dib) 等调用返回的指针。 打包的 DIB 由 BITMAPINFO 结构组成,后跟定义位图像素的字节数组。
如果 lbStyle 是BS_HATCHED,则 lbHatch 成员指定用于创建阴影的线条的方向。 可以是下列值之一。
值 | 含义 |
---|---|
HS_BDIAGONAL | 向上 45 度,从左到右阴影 |
HS_CROSS | 水平和垂直交叉阴影 |
HS_DIAGCROSS | 45 度交叉切线 |
HS_FDIAGONAL | 向下 45 度,从左到右阴影 |
HS_HORIZONTAL | 水平阴影 |
HS_VERTICAL | 垂直阴影 |
如果 lbStyle 是BS_PATTERN, 则 lbHatch 是定义模式的位图的句柄。 位图不能是由 CreateDIBSection 函数创建的 DIB 节位图。
如果 lbStyle 是BS_SOLID或BS_HOLLOW,则忽略 lbHatch 。
注解
尽管 lbColor 控制阴影画笔的前景色, 但 SetBkMode 和 SetBkColor 函数控制背景色。
可以从大于 8 x 8 像素的位图或 DIB 创建画笔。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
标头 | wingdi.h (包括 Windows.h) |