Метод GraphicsPathIterator::Enumerate (gdipluspath.h)
Метод GraphicsPathIterator::Enumerate копирует точки данных пути в массив PointF и копирует типы точек пути в массив BYTE .
Синтаксис
INT Enumerate(
[out] PointF *points,
[out] BYTE *types,
[in] INT count
);
Параметры
[out] points
Тип: PointF*
Указатель на массив, получающий точки данных пути.
[out] types
Тип: BYTE*
Указатель на массив, который получает типы точек пути.
[in] count
Тип: INT
Целое число, указывающее количество элементов в массиве точек . Это то же самое, что и количество элементов в массиве типов .
Возвращаемое значение
Тип: INT
Этот метод возвращает количество полученных точек.
Комментарии
Этот объект GraphicsPathIterator связан с объектом GraphicsPath . Этот объект GraphicsPath имеет массив точек и массив типов. Каждый элемент в массиве типов представляет собой байт, указывающий тип точки и набор флагов для соответствующего элемента в массиве точек. Возможные типы точек и флаги перечислены в перечислении PathPointType .
Чтобы определить количество точек данных в пути, можно вызвать метод GraphicsPathIterator::GetCount . Параметр points указывает на буфер, который получает точки данных, а параметр типов указывает на буфер, который получает типы. Перед вызовом метода GraphicsPathIterator::Enumerate необходимо выделить память для этих буферов. Размер буфера точек должен быть возвращаемым значением GraphicsPathIterator::GetCount , умноженным на sizeof(PointF). Размер буфера типов должен быть возвращаемым значением GraphicsPathIterator::GetCount.
Примеры
В следующем примере создается объект GraphicsPath и добавляется три строки в путь. Код создает объект GraphicsPathIterator и вызывает его метод GraphicsPathIterator::Enumerate для получения точек данных и типов точек пути. Затем код отображает число, возвращаемое методом GraphicsPathIterator::Enumerate .
#define BUFFER_SIZE 30
TCHAR numPointsEnum[BUFFER_SIZE];
// Add some lines to a path.
Point pts[] = {Point(20, 20),
Point(100, 20),
Point(100, 50),
Point(20, 50)};
GraphicsPath path;
path.AddLines(pts, 4);
// Create a GraphicsPathIterator object, and associate it with the path.
GraphicsPathIterator pathIterator(&path);
// Create destination arrays, and copy the path data to them.
UINT c = pathIterator.GetCount();
PointF* pEnumPoints = new PointF[c];
BYTE* pTypes = new BYTE[c];
INT count = pathIterator.Enumerate(pEnumPoints, pTypes, c);
// Confirm that the points were enumerated.
StringCchPrintf(
numPointsEnum, BUFFER_SIZE, TEXT("%d points were enumerated."), count);
MessageBox(hWnd, numPointsEnum, TEXT("Enumerate"), NULL);
delete[] pEnumPoints;
delete[] pTypes;
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP, Windows 2000 Профессиональная [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | gdipluspath.h (включая Gdiplus.h) |
Библиотека | Gdiplus.lib |
DLL | Gdiplus.dll |
См. также раздел
Построение и рисование контуров
GraphicsPathIterator::CopyData