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


Метод GraphicsPathIterator::Rewind (gdipluspath.h)

Метод GraphicsPathIterator::Rewind перемотает этот итератор в начало связанного пути.

Синтаксис

void Rewind();

Возвращаемое значение

None

Remarks

При первом вызове метода NextSubpath итератора он получает первую фигуру (подпуть) связанного пути этого итератора. Во второй раз он получает вторую фигуру, и так далее. При вызове GraphicsPathIterator::Rewind последовательность начинается заново; то есть после вызова GraphicsPathIterator::Rewind следующий вызов GraphicsPathIterator::NextSubpath получает первый рисунок в пути. Методы GraphicsPathIterator::NextMarker и GraphicsPathIterator::NextPathType ведут себя аналогично.

Примеры

В следующем примере создается объект GraphicsPath и добавляется пять цифр в путь. Код передает адрес этого объекта GraphicsPath конструктору GraphicsPathIterator , чтобы создать итератор, связанный с путем. Код дважды вызывает метод GraphicsPathIterator::NextSubpath итератора, чтобы получить вторую фигуру в пути. Метод DrawPath рисует этот путь синим цветом. Затем код вызывает метод GraphicsPathIterator::Rewind , а затем вызывает GraphicsPathIterator::NextSubpath один раз, чтобы получить первый рисунок в пути. Метод DrawPath рисует этот рисунок красным цветом.


VOID RewindExample(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);

   // Draw the second figure in blue.
   Pen bluePen(Color(255, 0, 0, 255));
   graphics.DrawPath(&bluePen, &subpath);

   // Rewind the iterator, and get the first figure in the path.
   iterator.Rewind();
   count = iterator.NextSubpath(&subpath, &isClosed);

   // Draw the first figure in red.
   Pen redPen(Color(255, 255, 0, 0));
   graphics.DrawPath(&redPen, &subpath);
}

Требования

   
Минимальная версия клиента Windows XP, Windows 2000 Профессиональная [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header gdipluspath.h (включая Gdiplus.h)
Библиотека Gdiplus.lib
DLL Gdiplus.dll

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

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

GraphicsPath

GraphicsPathIterator

Методы GraphicsPathIterator::NextMarker

GraphicsPathIterator::NextPathType

Методы GraphicsPathIterator::NextSubpath

Пути