您也可以不定义hPen变数,而将GetStockObject和SelectObject呼叫合并成一个叙述:
如果想恢复到使用BLACK_PEN的状态,可以用一个叙述取得这种画笔的代号,并将其选进装置内容:
SelectObject的传回值是此呼叫前装置内容中的画笔代号。如果启动一个新的装置内容并呼叫
则装置内容中的目前画笔将为WHITE_PEN,变数hPen将会是BLACK_PEN的代号。以後通过呼叫
就能够将BLACK_PEN选进装置内容。
画笔的建立、选择和删除
尽管使用现有画笔非常方便,但却受限於实心的黑画笔、实心的白画笔或者没有画笔这三种情况。如果想得到更丰富多彩的效果,就必须建立自己的画笔。
这一过程通常是:使用函式CreatePen或CreatePenIndirect建立一个「逻辑画笔」,这仅仅是对画笔的描述。这些函式传回逻辑画笔的代号;然後,呼叫SelectObject将画笔选进装置内容。现在,就可以使用新的画笔来画线了。在任何时候,都只能有一种画笔选进装置内容。在释放装置内容(或者在选择了另一种画笔到装置内容中)之後,就可以呼叫DeleteObject来删除所建立的逻辑画笔了。在删除後,该画笔的代号就不再有效了。
逻辑画笔是一种「GDI物件」,它是您可以建立的六种GDI物件之一,其他五种是画刷、点阵图、区域、字体和调色盘。除了调色盘之外,这些物件都是通过SelectObject选进装置内容的。
在使用画笔等GDI物件时,应该遵守以下三条规则:
这些规则当然是有道理的,而且有时这道理还挺微妙的。下面我们将举些例子来帮助理解这些规则。
CreatePen函式的语