CDC::PolyDraw 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于在设备上绘制多边形。这个方法的签名如下:
BOOL PolyDraw(
   const POINT* lpPoints,
   const BYTE* lpTypes,
   int nCount
);

这个方法的作用是根据提供的点坐标和类型信息,在设备上绘制一个多边形。参数说明如下:

  •  lpPoints:指向一个POINT结构数组的指针,表示多边形的顶点坐标。

  •  lpTypes:指向一个BYTE数组的指针,表示多边形的线段类型。每个元素对应一个线段,可以是 PT_MOVETO、PT_LINETO 或者 PT_BEZIERTO。

  •  nCount:表示点的数量,也表示类型数组的元素数量。


函数返回一个 BOOL 类型的值,表示操作是否成功。

这个方法主要用于绘制复杂的图形,可以包含直线和贝塞尔曲线等不同类型的线段。在使用时,你需要提供一组点坐标和相应的线段类型,然后调用 PolyDraw 方法进行绘制。

例如:
CDC dc; // 假设已经创建了设备上下文对象

POINT points[] = { {100, 100}, {200, 100}, {200, 200}, {100, 200} };
BYTE types[] = { PT_MOVETO, PT_LINETO, PT_LINETO, PT_LINETO };

dc.PolyDraw(points, types, 4);

上面的例子表示绘制一个矩形,首先移动到 (100, 100) 点,然后画直线到 (200, 100)、(200, 200)、(100, 200),最后回到起始点形成闭合的矩形。


转载请注明出处:http://www.pingtaimeng.com/article/detail/17166/MFC/CDC