CDC类中绘图函数Polygon,多边形填充

 在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();//删除画刷

结果如下:

CDC类中绘图函数Polygon,多边形填充_第1张图片

你可能感兴趣的:(MFC)