|
这种情况下,影线和填入色都不能是混色而成的颜色。如果背景方式为TRANSPARENT,则Windows只画出影线,不填入它们之间的区域。
您也可以使用CreatePatternBrush和CreateDIBPatternBrushPt建立自己的点阵图画刷。
建立逻辑画刷的第五个函式包含其他四个函式:
hBrush = CreateBrushIndirect (&logbrush) ;
变数logbrush是一个型态为LOGBRUSH(「逻辑画刷」)的结构,该结构的三个栏位如表5-4所示,lbStyle栏位的值确定了Windows如何解释其他两个栏位的值:
lbStyle
(UINT)
lbColor
(COLORREF)
lbHatch
(LONG)
|
| BS_SOLID |
画刷的色彩 |
忽略 |
| BS_HOLLOW |
忽略 |
忽略 |
| BS_HATCHED |
影线的色彩 |
影线画刷风格 |
| BS_PATTERN |
忽略 |
点阵图的代号 |
| BS_DIBPATTERNPT |
忽略 |
指向DIB的指标 |
前面我们用SelectObject将逻辑画笔选进装置内容,用DeleteObject删除画笔,用GetObject来取得逻辑画笔的资讯。对於画刷,同样能使用这三个函式。一旦您取得到了画刷代号,就可以使用SelectObject将该画刷选进装置内容:
SelectObject (hdc, hBrush) ;
然後,您可以使用DeleteObject函式删除所建立的画刷:
DeleteObject (hBrush) ;
但是,不要删除目前选进装置内容的画刷。
如果您需要取得画刷的资讯,可以呼叫GetObject:
GetObject (hBrush, sizeof (LOGBRUSH), (LPVOID) &logbrush) ;
其中,logbrush是一个型态为LOGBRUSH的结构。
GDI映射方式
到目前为止,所有的程式都是相对於显示区域的左上角,以图素为单位绘图的。这是内定情况,但不是唯一选择。事实上,「映射方式」是一种几乎影响任何显示区域绘图的装置内容属性。另外有四种装置内容属性-视窗原点、视埠原点、视窗范围和视埠范围-与映射方式密切相关。
大多数GDI绘图函式需要座标值或大小。例