画笔决定了线条的颜色、宽度和样式,样式可以是实线、点线或者虚线。画笔的默认设备环境是 BLACK_PEN 。该画笔会绘制一条宽度为1个像素的黑色线条。BLACK_PEN 是 Windows 提供的三种 ”备用画笔“ ( stock pen )的一种。另外两种分别是 WHITE_PEN 和 NULL_PEN 。NULL_PEN 表示不绘制任何图形的画笔。你也可以创建自己的画笔。
在 Windows 程序中,使用句柄来操作画笔。Windows 头文件 WINDEF.H 定义画笔句柄的类型为 HPEN 。可以使用这个类型定义一个变量(例如 hPen ):
HPEN hPen ;
调用 GetStockObject 函数可以获取备用画笔的句柄。例如想使用 WHITE_PEN 的备用画笔。可以按照如下方式获取画笔句柄:
hPen = GetStockObject ( WHITE_PEN ) ;
现在必须把该画笔选入设备环境:
SelectObject ( hdc , hPen ) ;
现在,当前画笔变成白色的画笔。也就是在该函数调用之后,绘制的所有线条的都将使用 WHITE_PEN ,直到将另一种画笔选入设备环境或者你释放了该设备环境句柄。
除了明确地定义 hPen 变量,还可以将 GetStockObject 调用和 SelectObject 调用组合在一条语句中:
SelectObject ( hdc, GetStockObject ( WHITE_PEN) ) ;
接着,如果想恢复使用 BLACK_PEN ,必须获取那个备用对象的句柄 ( BLACK_PEN ) 的句柄,同时将它选入设备环境 :
SelectObject ( hdc, GetStockObject ( BLACK_PEN ) ) ;