GetPath函数检索定义线路端点的坐标以及在指定设备上下文中选择的路径中找到的曲线的控制点。
int GetPath(
HDC 【HDC】, | //设备上下文的句柄 |
LPPOINT 【lpPoints】, | //数组接收路径顶点的地址 |
LPBYTE 【// address of array of path vertex types】, | //路径顶点类型数组的地址 |
INT 【服务提供商】 | //计数点定义路径 |
); |
参数
【HDC】
标识包含封闭路径的设备上下文。
【lpPoints】
指向包含线路端点和曲线控制点的POINT结构数组。
【// address of array of path vertex types】
指向放置顶点类型的字节数组。值是以下之一:
类型 | 描述 |
PT_MOVETO | 指定【lpPoints】参数中的对应点开始不相交的数字。 |
PT_LINETO | 指定【lpPoints】中的前一个点和对应点是一行的端点。 |
PT_BEZIERTO | 指定【lpPoints】中的对应点是B zier曲线的控制点或终点。 |
PT_BEZIERTO值始终以三组的形式出现。在它们之前的路径中的点定义了B zier曲线的起始点。前两个PT_BEZIERTO点是控制点,第三个PT_BEZIERTO点是结束(如果硬编码)点。 |
PT_LINETO或PT_BEZIERTO值可以与以下值组合(通过使用按位运算符OR)来指示对应点是图中的最后一个点,并且该图应该被关闭:
旗 | 描述 |
PT_CLOSEFIGURE | 指定在绘制相应的线或曲线后自动关闭该图形。将线从线或曲线端点绘制到对应于最后一个PT_MOVETO的点来关闭该图。 |
【服务提供商】
指定可以放置在【lpPoints】指向的数组中的POINT结构的总数。该值必须与由【// address of array of path vertex types】指向的数组中可能放置的字节数相同。
返回值
如果【服务提供商】参数非零,则返回值是枚举的点数。如果【服务提供商】为0,则返回值是路径中总点数(GetPath不向缓冲区写入任何内容)。如果【服务提供商】非零,并且小于路径中的点数,则返回值为-1。要获取扩展错误信息,请调用GetLastError.GetLastError可能会返回以下错误代码之一:
ERROR_CAN_NOT_COMPLETE
ERROR_INVALID_PARAMETER
ERROR_BUFFER_OVERFLOW
备注
由【HDC】参数标识的设备上下文必须包含封闭路径。
路径的点以逻辑坐标返回。点存储在设备坐标中的路径中,因此GetPath通过使用当前变换的倒数将点从设备坐标更改为逻辑坐标。
可以在GetPath之前调用FlattenPath函数将路径中的所有曲线转换为线段。
也可以看看