描述
LOGBRUSH32结构定义了物理画笔的样式,颜色和图案。它类似于LOGBRUSH,但是当我们在一个平台上记录图元文件,然后在另一个平台上播放时,它可用于维护32位平台和64位平台之间的兼容性。因此,它仅在EMRCREATEBRUSHINDIRECT中使用。如果代码只能在一个平台上,LOGBRUSH就足够了。
C++ 语法
typedef struct tagLOGBRUSH32 { UINT lbStyle; COLORREF lbColor; ULONG lbHatch; } LOGBRUSH32, *PLOGBRUSH32, NEAR *NPLOGBRUSH32, FAR *LPLOGBRUSH32; |
PowerBASIC 语法
TYPE LOGBRUSH32 lbStyle AS DWORD lbColor AS DWORD lbHatch AS DWORD END TYPE |
成员
lbStyle
指定画笔样式。lbStyle成员必须是以下样式之一。
值 |
含义 |
BS_DIBPATTERN |
由与设备无关的位图(DIB)规范定义的图案画笔。如果lbStyle是BS_DIBPATTERN,lbHatch成员包含一个打包DIB的句柄。有关更多信息,请参阅lbHatch中的讨论。
Windows 95:不支持从大于8 x 8像素的位图或DIB创建画笔。如果指定了较大的位图,则仅使用位图的一部分。 |
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颜色值,请使用PowerBASIC RGB功能。
lbHatch
指定一个填充样式。意义取决于lbStyle定义的画笔风格。
如果lbStyle是BS_DIBPATTERN,则lbHatch成员包含一个打包DIB的句柄。要获取此句柄,应用程序使用GMEM_MOVEABLE(或LocalAlloc使用LMEM_MOVEABLE)调用GlobalAlloc函数来分配一个内存块,然后使用打包的DIB填充内存。一个打包的DIB由BITMAPINFO结构组成,紧随其后的是定义位图像素的字节数组。
如果lbStyle是BS_DIBPATTERNPT,则lbHatch成员包含指向打包DIB的指针。指针是由具有LMEM_FIXED集的LocalAlloc创建的内存块或由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创建画笔。
引用文件 #INCLUDE Once
WinGdi.inc(包括Windows.inc)