尽管使用备用对象中的画笔非常方便,但只能使用实心的黑色画笔、实心的白色画笔
或者没有画笔三种情况。如果想获得更丰富的效果,则必须创建自己的画笔。
这里是创建画笔的一-般过程:调用CreatePen或者CreatePenIndirect 函数创建-一个“逻
辑画笔”,它只是说明你想得到一个什么样的画笔。这些函数会返回-一个逻辑画笔的句柄。
然后需要调用SelectObject函数将画笔选入设备环境中。接着,就可以使用这个新的画笔来
绘制线条。一次只能有一支画笔被选入设备环境。释放设备环境之后(或者将其他画笔选入
设备环境之后)。需要调用DeleteObject函数来删除你创建的逻辑画笔。此后,画笔的句柄
不再有效。
逻辑画笔是.一个“GDI对象”,一个程序可以创建6种GDI对象,它是其中之一,其他5种分别是画刷、位图、区域、字体和调色板。除了调色板之外,所有这些对象都通过
SelectObject函数选入设备环境。
下面三条规则控制画笔等GDI对象的使用:
◆最终应当删除你所创建的所有GDI对象。
◆当GDI对象被选入一个有效的设备环境时,不要删除它。
不要删除备用对象。
这些规则都是有道理的,但是有时候会有点棘手。下面我们将通过例子来帮助理解这些
规则。
CreatePen函数的一- 般语法如下:
hPen = CreatePen (iPenStyle. iwidth, crCo1or);
其中,参数iPenStyle决定画笔绘制的是实线或者虚线或点线。这个参数可以使用定义在
WINGDIH头文件中的下列标识符。图5-18显示了每种样式产生的线条。
PS. SouD
PS_ DASH
PS. ,DOT
PS DASHDOT
PS_ DASHDOTDOT