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, 则 lbColorCOLORREF 颜色值。 若要创建 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 控制阴影画笔的前景色, 但 SetBkModeSetBkColor 函数控制背景色。

可以从大于 8 x 8 像素的位图或 DIB 创建画笔。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
标头 wingdi.h (包括 Windows.h)

另请参阅

BITMAPINFO

画笔结构

画笔概述

COLORREF

CreateDIBSection

EMRCREATEBRUSHINDIRECT

LOGBRUSH

RGB

SetBkColor

SetBkMode