绘制填入区域
现在再更进一步,从画线到画图形。Windows中七个用来画带边缘的填入图形的函式列於表5-3中。
| 表5-3 |
Windows用装置内容中选择的目前画笔来画图形的边界框,边界框还使用目前背景方式、背景色彩和绘图方式,这跟Windows画线时一样。关於直线的一切也适用於这些图形的边界框。
图形以目前装置内容中选择的画刷来填入。内定情况下,使用现有物件,这意味著图形内部将画为白色。Windows定义六种现有画刷:WHITE_BRUSH、LTGRAY_BRUSH、GRAY_BRUSH、DKGRAY_BRUSH、BLACK_BRUSH和NULL_BRUSH (也叫HOLLOW_BRUSH)。您可以将任何一种现有画刷选入您的装置内容中,就和您选择一种画笔一样。Windbws将HBRUSH定义为画刷的代号,所以可以先定义一个画刷代号变数:
HBRUSH hBrush ;
您可以通过呼叫GetStockObject来取得GRAY_BRUSH的代号:
hBrush = GetStockObject (GRAY_BRUSH) ;
您可以呼叫SelectObject将它选进装置内容:
SelectObject (hdc, hBrush) ;
现在,如果您要画上表中的任一个图形,则其内部将为灰色。
如果您想画一个没有边界框的图形,可以将NULL_PEN选进装置内容:
SelectObject (hdc, GetStockObject (NULL_PEN)) ;
如果您想画出图形的边界框,但不填入内部,则将NULL_BRUSH选进装置内容:
SelectObject (hdc