Поделиться через


Метод 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

См. также раздел

Построение и рисование контуров

GetPathData

GraphicsPath

GraphicsPathIterator

GraphicsPathIterator::GetSubpathCount

Методы GraphicsPathIterator::NextMarker

NextSubpath

Пути