Collapse the table of content
Expand the table of content



Draws a polygon consisting of two or more points (vertices) connected by lines, using the current pen.

BOOL Polygon(   LPPOINT lpPoints,   int nCount);


Points to an array of points that specifies the vertices of the polygon. Each point in the array is a POINT structure or a CPoint object.


Specifies the number of vertices in the array.

Nonzero if the function is successful; otherwise 0.

The system closes the polygon automatically, if necessary, by drawing a line from the last vertex to the first.

The current polygon-filling mode can be retrieved or set by using the GetPolyFillMode and SetPolyFillMode member functions.

void CDCView::DrawPolygon(CDC* pDC)
   // find the client area
   CRect rect;

   // draw with a thick blue pen
   CPen penBlue(PS_SOLID, 5, RGB(0, 0, 255));
   CPen* pOldPen = pDC->SelectObject(&penBlue);

   // and a solid red brush
   CBrush brushRed(RGB(255, 0, 0));
   CBrush* pOldBrush = pDC->SelectObject(&brushRed);

   // Find the midpoints of the top, right, left, and bottom
   // of the client area. They will be the vertices of our polygon.
   CPoint pts[4];
   pts[0].x = rect.left + rect.Width()/2;
   pts[0].y =;

   pts[1].x = rect.right;
   pts[1].y = + rect.Height()/2;

   pts[2].x = pts[0].x;
   pts[2].y = rect.bottom;

   pts[3].x = rect.left;
   pts[3].y = pts[1].y;

   // Calling Polygon() on that array will draw three lines
   // between the points, as well as an additional line to
   // close the shape--from the last point to the first point
   // we specified.
   pDC->Polygon(pts, 4);

   // Put back the old objects.


Header: afxwin.h

© 2015 Microsoft