Функция PolyDraw рисует ряд отрезков прямых и кривые Бизье.
Синтаксис
BOOL PolyDraw( HDC hdc, // дескриптор контекста устройства CONST POINT *lppt, // массив точек CONST BYTE *lpbTypes, // идентификаторы линий и кривых int cCount // количество точек ); |
hdc
[in] Дескриптор контекста устройства.
lppt
[in] Указатель на массив структур POINT, который содержит конечные точки для каждого отрезка прямой и конечные и контрольные точки для каждой кривой Бизье, в логических единицах.
lpbTypes
[in] Указатель на массив, который определяет, как используется каждая точка в массиве lppt. Этот параметр может быть одним из нижеследующих значений.
| Тип | Предназначение |
|---|---|
| PT_MOVETO | Определяет, что от этой точки начинается непересекающийся рисунок линии. Эта точка становится новой текущей позицией. |
| PT_LINETO | Определяет, что линия должна рисоваться от текущей позиции до этой точки, которая затем становится новой текущей позицией. |
| PT_BEZIERTO | Определяет, что эта точка - контрольная точка или
конечная точка для кривой Бизье.
Типы PT_BEZIERTO всегда встречаются в наборах из трех составляющих. Текущая позиция определяет начальную точку для кривой Бизье. Первые две точки PT_BEZIERTO - контрольные точки, а третья точка PT_BEZIERTO - конечная точка. Конечная точка становится новой текущей позицией. Если нет трех последовательных точек PT_BEZIERTO, все заканчивается ошибкой. |
Типы PT_LINETO или PT_BEZIERTO могут комбинироваться с нижеследующим значением при помощи использования логического оператора ИЛИ ( OR), чтобы указать, что соответствующая точка - последняя точка в рисунке линии и рисунок закрывается.
| Значение | Предназначение |
|---|---|
| PT_CLOSEFIGURE | Определяет, что рисунок линии автоматически закрывается
после того как тип PT_LINETO или
PT_BEZIERTO для этой точки
заканчивается. Линия рисуется от этой точки до самой последней точки
типа PT_MOVETO или функции MoveToEx.
Это значение комбинируется с типом PT_LINETO для линии или с типом PT_BEZIERTO конечной точки для кривой Бизье, при помощи использования логического оператора ИЛИ (OR). Текущая позиция устанавливается в конечной точке заключительной линии. |
[in] Определяет общее количество точек в массиве lppt, которое то же самое, что и число байтов в массиве lpbTypes.
Если функция завершается успешно, возвращаемое значение - не нуль.
Если функция завершается ошибкой, возвращаемое значение - нуль.
Windows NT/2000/XP: Чтобы получить дополнительную информацию об ошибке, вызовите GetLastError.
Функция PolyDraw может использоваться вместо последовательных вызовов в MoveToEx, LineTo, а функции PolyBezierTo, чтобы рисовать непересекающиеся фигуры. Линии и кривые рисуются, используя текущее перо, а фигуры не закрашиваются. Если есть активный путь, запущенный при помощи вызова функции BeginPath, функция PolyDraw добавляет к пути.
Точки, содержащиеся в массиве lppt и в массиве lpbTypes указывают, является ли каждая точка частью операции функций MoveTo, LineTo или PolyBezierTo. Также возможно и закрыть фигуры.
Эта функция обновляет текущую позицию.
Смотри также
Обзор Линии и кривые, Функции, используемые линиями и кривыми, BeginPath, EndPath, LineTo, MoveToEx, POINT, PolyBezierTo, PolyLine
|
Размещение и совместимость PolyDraw |
||
| К | Windows XP | Да |
| л | Windows 2000 Professional | Да |
| и | Windows NT Workstation | Да версии 3.1 и старше |
| е | Windows Me | Нет |
| н | Windows 98 | Нет |
| т | Windows 95 | Нет |
| С | Windows Server 2003 | Да |
| е | Windows 2000 Server | Да |
| р | Windows NT Server | Да |
| в | ||
| е | ||
| р | ||
| Используемая библиотека | Gdi32.lib | |
| Используемая DLL | - | |
| Заголовочный файл | ||
| - объявлено в | Wingdi.h | |
| - включено в | Windows.h | |
| Unicode | Нет | |
| Замечания по платформе | Не имеется | |