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


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

Метод GraphicsPathIterator::CopyData копирует подмножество данных пути, указывающих на массив PointF , и копирует подмножество типов точек пути в массив BYTE .

Синтаксис

INT CopyData(
  [out] PointF *points,
  [out] BYTE   *types,
  [in]  INT    startIndex,
  [in]  INT    endIndex
);

Параметры

[out] points

Тип: PointF*

Указатель на массив, получающий подмножество точек данных пути.

[out] types

Тип: BYTE*

Указатель на массив, получающий подмножество типов точек пути.

[in] startIndex

Тип: INT

Целое число, указывающее начальный индекс копируемых точек и типов.

[in] endIndex

Тип: INT

Целое число, указывающее конечный индекс копируемых точек и типов.

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

Тип: INT

Этот метод возвращает количество скопированных точек. Это то же самое, что и количество скопированных типов.

Комментарии

Этот объект GraphicsPathIterator связан с объектом GraphicsPath . Объект GraphicsPath имеет массив точек и массив типов. Каждый элемент в массиве типов является байтом, указывающим тип точки и набор флагов для соответствующего элемента в массиве точек. Возможные типы точек и флаги перечислены в перечислении PathPointType .

Чтобы определить количество точек данных в пути, можно вызвать метод GraphicsPathIterator::GetCount .

Примеры

В следующем примере создается объект GraphicsPath и к пути добавляются три строки. Код создает объект GraphicsPathIterator> и вызывает его метод GraphicsPathIterator::CopyData для получения точек и типов точек пути. Затем код отображает счетчик, возвращаемый методом GraphicsPathIterator::CopyData .


#define BUFFER_SIZE 30
TCHAR numPointsCopied[BUFFER_SIZE];

// Create the points for three lines in a path.
Point pts[] = { Point(20, 20), 
                Point(100, 20), 
                Point(100, 50), 
                Point(20, 50) };
GraphicsPath path;
path.AddLines(pts, 4); // Add the lines to the path.

// Create a GraphicsPathIterator object and associate it with the path. 
GraphicsPathIterator pathIterator(&path);

// Create destination arrays, and copy the path data to them.
PointF* pCopiedPoints = new PointF[4]; 
BYTE* pTypes = new BYTE[4];
INT count = pathIterator.CopyData(pCopiedPoints, pTypes, 0, 3);

// Confirm that the points copied.
StringCchPrintf(
   numPointsCopied, BUFFER_SIZE, TEXT("%d points were copied."), count);

MessageBox(hWnd, numPointsCopied, TEXT("CopyData"), NULL);

delete[] pCopiedPoints;
delete[] pTypes;

Требования

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

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

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

GetPathData

Методы GetPathPoints

GetPathTypes

GetPointCount

GraphicsPath

GraphicsPathIterator

GraphicsPathIterator::Enumerate

GraphicsPathIterator::GetCount

Пути