Метод GraphicsPathIterator::NextMarker(constGraphicsPath*) (gdipluspath.h)
Метод GraphicsPathIterator::NextMarker получает следующий раздел с разделителями маркерами связанного пути этого итератора.
Синтаксис
INT NextMarker(
[out] const GraphicsPath *path
);
Параметры
[out] path
Тип: GraphicsPath*
Указатель на объект GraphicsPath . Этот метод задает точки данных этого объекта GraphicsPath в соответствии с точками данных полученного раздела.
Возвращаемое значение
Тип: INT
Этот метод возвращает количество точек данных в извлеченном разделе. Если разделов с разделителями маркерами больше нет, этот метод возвращает значение 0.
Комментарии
Путь содержит массив точек данных, определяющих его линии и кривые. Вы можете вызвать метод SetMarker пути, чтобы назначить определенные точки в массиве в качестве маркеров. Эти точки маркеров делят путь на разделы.
При первом вызове метода GraphicsPathIterator::NextMarker для итератора он получает первый раздел, разделенный маркерами, связанного пути этого итератора. Во второй раз он получает второй раздел и т. д. Каждый раз при вызове GraphicsPathIterator::NextSubpath возвращается количество точек данных в полученном разделе. Если разделов не осталось, возвращается значение 0.
Примеры
В следующем примере создается объект GraphicsPath и добавляется пять рисунков в путь. Вызовы метода SetMarker помещает в путь два маркера. Первый маркер находится в конце фигуры, а второй — в середине фигуры. Код передает адрес объекта GraphicsPath конструктору GraphicsPathIterator для создания итератора, связанного с путем. Затем код дважды вызывает метод GraphicsPathIterator::NextMarkerator итератора , чтобы получить второй раздел пути с разделителями маркерами. Наконец, код рисует полученный раздел пути.
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 |
Header | gdipluspath.h (включая Gdiplus.h) |
Библиотека | Gdiplus.lib |
DLL | Gdiplus.dll |
См. также раздел
Построение и рисование контуров