勇芳软件工作室.汉化:  Brushes > Brush Structures >

LOGBRUSH32

Previous pageReturn to chapter overviewNext page

描述

 

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控制了一个填充画刷的前景颜色,但SetBkModeSetBkColor功能可以控制背景颜色。

 

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

 

引用文件 #INCLUDE Once

 

WinGdi.inc(包括Windows.inc)