Метод GraphicsPathIterator::NextSubpath(constGraphicsPath*,BOOL*) (gdipluspath.h)
Метод GraphicsPathIterator::NextSubpath получает следующий рисунок (подпуть) из связанного пути этого итератора.
Синтаксис
INT NextSubpath(
[out] const GraphicsPath *path,
[out] BOOL *isClosed
);
Параметры
[out] path
Тип: GraphicsPath*
Указатель на объект GraphicsPath . Этот метод задает точки данных этого объекта GraphicsPath в соответствии с точками данных полученного рисунка.
[out] isClosed
Тип: BOOL*
Указатель на bool , получающий значение, указывающее, закрыта ли полученная фигура. Если рисунок закрыт, полученное значение равно TRUE; в противном случае полученное значение равно FALSE.
Возвращаемое значение
Тип: INT
Этот метод возвращает количество точек данных на полученном рисунке. Если больше нет цифр для извлечения, этот метод возвращает значение 0.
Комментарии
При первом вызове метода GraphicsPathIterator::NextSubpath итератора он получает первый рисунок (подпуть) связанного пути этого итератора. Во второй раз он получает вторую фигуру, и так далее. Каждый раз, когда вы вызываете GraphicsPathIterator::NextSubpath, он возвращает количество точек данных на полученном рисунке. Если цифр не осталось, возвращается значение 0.
Примеры
В следующем примере создается объект GraphicsPath и добавляется пять фигур (также называемых подпутьями) к пути. Код передает адрес объекта GraphicsPath конструктору GraphicsPathIterator для создания итератора, связанного с путем. Код вызывает метод GraphicsPathIterator::NextSubpath дважды, чтобы получить второй рисунок (подпуть) из пути. Затем код вызывает метод DrawPath объекта Graphics , чтобы нарисовать этот отдельный подпуть.
VOID NextSubpathExample(HDC hdc)
{
Graphics graphics(hdc);
// Create a graphics path with five figures (subpaths).
GraphicsPath path;
path.AddRectangle(Rect(20, 20, 60, 30)); // Subpath count is 1.
path.AddLine(100, 20, 160, 50); // Subpath count is 2.
path.AddArc(180, 20, 60, 30, 0.0f, 180.0f);
path.AddRectangle(Rect(260, 20, 60, 30)); // Subpath count is 3.
path.AddLine(340, 20, 400, 50); // Subpath count is 4.
path.AddArc(340, 20, 60, 30, 0.0f, 180.0f);
path.CloseFigure();
path.AddRectangle(Rect(420, 20, 60, 30)); // Subpath count is 5.
// Create an iterator, and associate it with the path.
GraphicsPathIterator iterator(&path);
// Get the second subpath by calling NextSubpath twice.
GraphicsPath subpath;
BOOL isClosed;
INT count;
count = iterator.NextSubpath(&subpath, &isClosed);
count = iterator.NextSubpath(&subpath, &isClosed);
// The variable "count" now holds the number of
// data points in the second subpath.
// Draw the retrieved subpath.
Pen bluePen(Color(255, 0, 0, 255));
graphics.DrawPath(&bluePen, &subpath);
}
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP, Windows 2000 Профессиональная [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | gdipluspath.h (включая Gdiplus.h) |
Библиотека | Gdiplus.lib |
DLL | Gdiplus.dll |
См. также раздел
Построение и рисование контуров
GraphicsPathIterator::GetSubpathCount