下面是另一种方法,在将新建立的画笔选进装置内容时,保存SelectObject传回的画笔代号:
现在hPen是什么呢?如果这是在取得装置内容之後第一次呼叫SelectObject,则hPen是BLACK_PEN物件的代号。现在,可以将hPen选进装置内容,并删除所建立的画笔(第二次SelectObject呼叫传回的代号),只要一道叙述即可:
如果有一个画笔的代号,就可以通过呼叫GetObject取得LOGPEN结构各个成员的值:
如果需要目前选进装置内容的画笔代号,可以呼叫:
在第十七章将讨论另一个建立画笔的函式ExtCreatePen。
填入空隙
使用点式画笔和虚线画笔会产生一个有趣的问题:点和虚线之间的空隙会怎样呢?您所需要的是什么?
空隙的著色取决於装置内容的两个属性-背景模式和背景颜色。内定背景模式为OPAQUE,在这种方式下,Windows使用背景色来填入空隙,内定的背景色为白色。这与许多程式在视窗类别中用WHITE_BRUSH来擦除视窗背景的做法是一致的。
您可以通过如下呼叫来改变Windows用来填入空隙的背景色:
与画笔色彩所使用的crColor参数一样,Windows将这里的背景色转换为纯色。可以通过用GetBkColor来取得装置内容中定义的目前背景色。
通过将背景模式转换为TRANSPARENT,可以阻止Windows填入空隙:
此後,Windows