GraphicsPathIterator::NextMarker (constGraphicsPath*) 方法 (gdipluspath.h)
GraphicsPathIterator::NextMarker 方法获取此迭代器关联路径的下一个标记分隔部分。
语法
INT NextMarker(
[out] const GraphicsPath *path
);
parameters
[out] path
类型: GraphicsPath*
指向 GraphicsPath 对象的指针。 此方法设置此 GraphicsPath 对象的数据点,以匹配检索到的节的数据点。
返回值
类型: INT
此方法返回检索到的节中的数据点数。 如果没有其他标记分隔部分要检索,此方法将返回 0。
注解
路径具有定义其线条和曲线的数据点数组。 可以调用路径的 SetMarker 方法,以将数组中的某些点指定为标记。 这些标记点将路径划分为多个部分。
首次调用迭代 器的 GraphicsPathIterator::NextMarker 方法时,它将获取该迭代器关联路径的第一个标记分隔部分。 第二次,它获取第二个部分,依此进行。 每次调用 GraphicsPathIterator::NextSubpath 时,都会返回检索到的节中的数据点数。 如果没有剩余部分,则返回 0。
示例
以下示例创建 一个 GraphicsPath 对象,并将五个图形添加到路径。 对 SetMarker 方法的调用会在路径中放置两个标记。 第一个标记位于图的末尾,第二个标记位于图形的中间。 代码将 GraphicsPath 对象的地址传递给 GraphicsPathIterator 构造函数,以创建与路径关联的迭代器。 然后,代码调用迭代器的 GraphicsPathIterator::NextMarker 方法两次,以获取路径的第二个标记分隔部分。 最后,代码绘制路径中检索到的部分。
VOID NextMarkerExample(HDC hdc)
{
Graphics graphics(hdc);
// Create a graphics path with five figures (subpaths).
GraphicsPath path;
path.AddRectangle(Rect(20, 20, 60, 30));
path.SetMarker(); // first marker
path.AddLine(100, 20, 160, 50);
path.AddArc(180, 20, 60, 30, 0.0f, 180.0f);
path.AddRectangle(Rect(260, 20, 60, 30));
path.AddLine(340, 20, 400, 50);
path.SetMarker(); // second marker
path.AddArc(340, 20, 60, 30, 0.0f, 180.0f);
path.CloseFigure();
path.AddRectangle(Rect(420, 20, 60, 30));
// Create an iterator, and associate it with the path.
GraphicsPathIterator iterator(&path);
// Get the second marker-delimited section by calling NextMarker twice.
GraphicsPath section;
INT count;
count = iterator.NextMarker(§ion);
count = iterator.NextMarker(§ion);
// The variable "count" now holds the number of
// data points in the second marker-delimited section.
// Draw the retrieved section.
Pen bluePen(Color(255, 0, 0, 255));
graphics.DrawPath(&bluePen, §ion);
}
要求
最低受支持的客户端 | Windows XP、Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | gdipluspath.h (包括 Gdiplus.h) |
Library | Gdiplus.lib |
DLL | Gdiplus.dll |