PolyPolygon function (wingdi.h)

The PolyPolygon function draws a series of closed polygons. Each polygon is outlined by using the current pen and filled by using the current brush and polygon fill mode. The polygons drawn by this function can overlap.


BOOL PolyPolygon(
  [in] HDC         hdc,
  [in] const POINT *apt,
  [in] const INT   *asz,
  [in] int         csz


[in] hdc

A handle to the device context.

[in] apt

A pointer to an array of POINT structures that define the vertices of the polygons, in logical coordinates. The polygons are specified consecutively. Each polygon is closed automatically by drawing a line from the last vertex to the first. Each vertex should be specified once.

[in] asz

A pointer to an array of integers, each of which specifies the number of points in the corresponding polygon. Each integer must be greater than or equal to 2.

[in] csz

The total number of polygons.

Return value

If the function succeeds, the return value is nonzero.

If the function fails, the return value is zero.


The current position is neither used nor updated by this function.

Any extra points are ignored. To draw the polygons with more points, divide your data into groups, each of which have less than the maximum number of points, and call the function for each group of points. Note, it is best to have a polygon in only one of the groups.


Minimum supported client Windows 2000 Professional [desktop apps only]
Minimum supported server Windows 2000 Server [desktop apps only]
Target Platform Windows
Header wingdi.h (include Windows.h)
Library Gdi32.lib
DLL Gdi32.dll

See also

Filled Shape Functions

Filled Shapes Overview