Collapse the table of content
Expand the table of content
Expand Minimize
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

PolyBezier function

The PolyBezier function draws one or more Bézier curves.


BOOL PolyBezier(
  _In_       HDC   hdc,
  _In_ const POINT *lppt,
  _In_       DWORD cPoints


hdc [in]

A handle to a device context.

lppt [in]

A pointer to an array of POINT structures that contain the endpoints and control points of the curve(s), in logical units.

cPoints [in]

The number of points in the lppt array. This value must be one more than three times the number of curves to be drawn, because each Bézier curve requires two control points and an endpoint, and the initial curve requires an additional starting point.

Return value

If the function succeeds, the return value is nonzero.

If the function fails, the return value is zero.


The PolyBezier function draws cubic Bézier curves by using the endpoints and control points specified by the lppt parameter. The first curve is drawn from the first point to the fourth point by using the second and third points as control points. Each subsequent curve in the sequence needs exactly three more points: the ending point of the previous curve is used as the starting point, the next two points in the sequence are control points, and the third is the ending point.

The current position is neither used nor updated by the PolyBezier function. The figure is not filled.

This function draws lines by using the current pen.


For an example, see Redrawing in the Update Region.


Minimum supported client

Windows 2000 Professional [desktop apps only]

Minimum supported server

Windows 2000 Server [desktop apps only]


Wingdi.h (include Windows.h)





See also

Lines and Curves Overview
Line and Curve Functions



Community Additions

© 2015 Microsoft