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

LOGBRUSH

Previous pageReturn to chapter overviewNext page

描述

 

LOGBRUSH结构定义了物理画笔的样式,颜色和图案。它由CreateBrushIndirectExtCreatePen功能使用。

 

C++ 语法

 

typedef struct tagLOGBRUSH {

UINT      lbStyle;

COLORREF  lbColor;

ULONG_PTR lbHatch;

} LOGBRUSH, *PLOGBRUSH;

 

PowerBASIC 语法

 

TYPE LOGBRUSH

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的指针。该指针来源于LocalAlloc使用LMEM_FIXED集创建的存储器块,或者由GlobalAlloc设置为GMEM_FIXED,或者是由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将被忽略。

 

注意在早期的SDK中,lbHatch被定义为LONG,但现在被定义为ULONG_PTR。

 

备注

 

虽然lbColor控制了一个填充画笔的前景色,SetBkModeSetBkColor功能控制背景颜色。

 

Windows 95:不支持从大于8 x 8像素的位图或DIB创建画笔。如果指定了较大的位图,则仅使用位图的一部分。

 

Windows 98 / Me,Windows NT / 2000 / XP / Vista / Windows 7:可以从大于8 x 8像素的位图或DIB创建画笔。

 

引用文件 #INCLUDE Once

 

WinGdi.inc(包括Windows.inc)