createPen 函数 (wingdi.h)

CreatePen 函数创建具有指定样式、宽度和颜色的逻辑笔。 笔随后可以选择到设备上下文中,并用于绘制线条和曲线。

语法

HPEN CreatePen(
  [in] int      iStyle,
  [in] int      cWidth,
  [in] COLORREF color
);

参数

[in] iStyle

笔样式。 它可以是以下任意一个值。

含义
PS_SOLID
触控笔是实心的。
PS_DASH
触控笔虚线。 仅当笔宽度为 1 或更少(以设备单位为单位)时,此样式才有效。
PS_DOT
笔被点点。 仅当笔宽度为 1 或更少(以设备单位为单位)时,此样式才有效。
PS_DASHDOT
笔具有交替的短划线和点。 仅当笔宽度为 1 或更少(以设备单位为单位)时,此样式才有效。
PS_DASHDOTDOT
笔具有交替的短划线和双点。 仅当笔宽度为 1 或更少(以设备单位为单位)时,此样式才有效。
PS_NULL
笔不可见。
PS_INSIDEFRAME
触控笔是实心的。 在采用边框的任何 GDI 绘图函数中使用此笔时,图形的尺寸会缩小,使其完全适合边界矩形,同时考虑笔的宽度。 这仅适用于几何笔。

[in] cWidth

笔的宽度(以逻辑单位为单位)。 如果 nWidth 为零,则无论当前转换如何,笔都是一个像素宽。

如果为以下样式指定宽度大于 1 的宽度,CreatePen 将返回具有指定宽度但具有PS_SOLID样式的笔:PS_DASH、PS_DOT、PS_DASHDOT PS_DASHDOTDOT。

[in] color

笔颜色的颜色参考。 若要生成 COLORREF 结构,请使用 RGB 宏。

返回值

如果函数成功,则返回值是标识逻辑笔的句柄。

如果函数失败,则返回值为 NULL。

注解

应用程序创建逻辑笔后,可以通过调用 SelectObject 函数将该笔选择到设备上下文中。 将笔选入设备上下文后,可用于绘制线条和曲线。

如果 nWidth 参数指定的值为零,则无论当前转换如何,使用创建的笔绘制的线条始终为单个像素宽。

如果 nWidth 指定的值大于 1,则 fnPenStyle 参数必须是PS_NULL、PS_SOLID或PS_INSIDEFRAME。

如果 nWidth 指定的值大于 1 且 fnPenStyle PS_INSIDEFRAME,则与笔关联的线条将绘制在所有基元(多边形和折线除外)的框架内。

如果 nWidth 指定的值大于 1,则 fnPenStyle 为PS_INSIDEFRAME,并且 crColor 参数指定的颜色与逻辑调色板中的某个条目不匹配,则系统会使用抖动的颜色绘制线条。 抖变颜色不适用于纯色笔。

使用PS_DASH、PS_DOT、PS_DASHDOT或PS_DASHDOTDOT 的 iStyle 参数时,为了使短划线或点之间的间隔透明,请使用 SetBkMode 将模式设置为 TRANSPARENT。

如果不再需要触控笔,请调用 DeleteObject 函数将其删除。

Icm: 创建时不执行颜色管理。 但是,当将笔选入启用了 ICM 的设备上下文时,将执行颜色管理。

示例

有关示例,请参阅 创建彩色笔和画笔

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 wingdi.h (包括 Windows.h)
Library Gdi32.lib
DLL Gdi32.dll

另请参阅

COLORREF

CreatePenIndirect

DeleteObject

ExtCreatePen

GetObject

笔函数

笔概述

RGB

SelectObject