CDC::GetPath

int GetPath(LPOINT lpPoints,LPBYTE lpTypes,int nCount) const;

返回值:
如果nCount参数非零,则返回列出的点数目。如果nCount为零,则返回路径中的点总数(要求GetPath没有向缓冲区中写入)。如果nCount非零且小于路径中的点数,则返回-1。

参数:
lpPoint含有直线端点和曲线控制点的POINT数据结构或CPoint对象的指针。
lpType放置顶点类型数组的指针。可取下列值之一:
PT_MOVETOlpPoints中的对应点,开始分解图形。
PT_LINETO指定前一点,lpPoints中的对应点为直线的终点。
PT_BEZIERTOlpPonits中的对应点为曲线的控制点或终点。PT_BEZIERTO类型总是三个一组地出现。路径中的点作为Bezier曲线的起点,前两个PT_BEZIERTO作为控制点,第三个PT_BEZIERTO作为终点。A PT_LINETO或PT_BEZIERTO类型可以用标记符号(如使用位运算符OR)加以联合,表示相应点是图形的最终点,且图形是闭合的。
PT_CLOSEFIGURE当对应直线或曲线绘制完成后,图形自动闭合。通过从直线或曲线终点到最后一个PT_MOVETO的对应点画线段的方法来关闭图形。

nCount指定可能放在lpPoint数组中的POINT数据结构的总数。其值与可能放在lpType数组中的字节总数相同。

说明:
获得路径中直线终点和曲线控制点的坐标值,该路径在设备上下文内。设备上下文必须包含一个封闭的路径,路径中的点以逻辑坐标返回。在路径中,点以设备坐标形式存储,因此GetPath用相反的转换方法将设备坐标转换成逻辑坐标,在GetPath之前先调用FlattenPath成员函数,将曲线变成线段。

请参阅:CDC::FlattenPath, CDC::PolyDraw, CDC::WidenPath