Метод 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 |
См. также раздел
Построение и рисование контуров
GraphicsPathIterator::Enumerate