在MFC绘图中,CDC类中有个绘制多边形的函数Polygon(),原型为
CDC::Polygon(const POINT* lpPoints, int nCount)
其中lpPoints是多边形顶点数组首地址,nCount是多边形顶点数,如果最后一个顶点与起始顶点不同,则会默认在最后一个顶点与起始点之间连一条线。如果要绘制填充多边形,则需要使用画刷Brush,下面是一个例子。
// TODO: 在此处为本机数据添加绘制代码
CPoint p[4];//定义多边形顶点
p[0].x = 10; p[0].y = 100;
p[1].x = 200; p[1].y = 100;
p[2].x = 500; p[2].y = 60;
p[3].x = 10; p[3].y = 300;
CPen MyPen, *OldPen;//定义画笔
MyPen.CreatePen(PS_SOLID,1,RGB(0,0,255));//创建蓝色画笔
OldPen = pDC->SelectObject(&MyPen);//选中画笔到设备上下文
CBrush MyBrush, *OldBrush;//定义填充画刷
MyBrush.CreateSolidBrush(RGB(255,0,0));//创建红色画刷
OldBrush=pDC->SelectObject(&MyBrush);//选中画刷到设备山下文
//画多边形
pDC->Polygon(p , 4);//p为点集,4表示有4个点
pDC->SelectObject(OldPen); //画框线为蓝色
pDC->SelectObject(OldBrush); // 填充为红色
MyPen.DeleteObject();//删除画笔
MyBrush.DeleteObject();//删除画刷
结果如下: