polyDraw 函数 (wingdi.h)

PolyDraw 函数绘制一组线段和贝塞尔曲线。

语法

BOOL PolyDraw(
  [in] HDC         hdc,
  [in] const POINT *apt,
  [in] const BYTE  *aj,
  [in] int         cpt
);

参数

[in] hdc

设备上下文的句柄。

[in] apt

指向 POINT 结构的数组的指针,该数组包含每个线段的端点以及每个贝塞尔曲线的端点和控制点(以逻辑单元为单位)。

[in] aj

指向数组的指针,该数组指定如何使用 lppt 数组中的每个点。 此参数的取值可为下列值之一:

类型 含义
PT_MOVETO
指定此点开始一个不相交的图形。 此点将成为新的当前位置。
PT_LINETO
指定从当前位置到此点绘制一条线,然后此点将成为新的当前位置。
PT_BEZIERTO
指定此点是贝塞尔曲线的控制点或终点。

PT_BEZIERTO类型始终出现在三个集中。 当前位置定义贝塞尔曲线的起点。 前两个PT_BEZIERTO点是控制点,第三个PT_BEZIERTO点是终点。 终点将成为新的当前位置。 如果没有连续三个PT_BEZIERTO点,则会导致错误。

 

PT_LINETO或PT_BEZIERTO类型可以通过使用按位运算符 OR 来与以下值组合,以指示相应的点是图中的最后一个点,并且图形已关闭。

含义
PT_CLOSEFIGURE
指定在完成此点的PT_LINETO或PT_BEZIERTO类型后自动关闭图形。 从此点到最近的PT_MOVETO或 MoveToEx 点绘制一条线。

使用按位运算符 OR 将此值与直线的 PT_LINETO 类型或贝塞尔曲线的终点的PT_BEZIERTO类型组合在一起。

当前位置设置为闭合线的终点。

[in] cpt

lppt 数组中的总点数,与 lpbTypes 数组中的字节数相同。

返回值

如果该函数成功,则返回值为非零值。

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

注解

PolyDraw 函数可用于代替对 MoveToExLineToPolyBezierTo 函数的连续调用,以绘制不连续的图形。 线条和曲线是使用当前笔绘制的,图形不会填充。 如果存在通过调用 BeginPath 启动的活动路径, PolyDraw 将添加到该路径。

lppt 数组和 lpbTypes 数组中包含的点指示每个点是 MoveToLineTo 还是 PolyBezierTo 操作的一部分。 也可以闭合图形。

此函数更新当前位置。

要求

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

另请参阅

BeginPath

EndPath

直线和曲线函数

LineTo

线条和曲线概述

MoveToEx

PolyBezierTo

折线