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


CRgn::CreatePolyPolygonRgn

Создает область, состоящий из ряда закрытых многоугольников.

BOOL CreatePolyPolygonRgn(
   LPPOINT lpPoints,
   LPINT lpPolyCounts,
   int nCount,
   int nPolyFillMode 
);

Параметры

  • lpPoints
    Указывает на массив структур POINT или массив объектов CPoint, указывающий вершин многоугольников.Каждый многоугольник, необходимо явно закрыть, поскольку система не закрывает они автоматически.Многоугольники определяются последовательно.Структура POINT имеет следующую форму:

    typedef struct tagPOINT {

    int x;

    int y;

    } POINT;

  • lpPolyCounts
    Указывает на массив целых чисел.Первое целое число, указывающее количество вершин в первом многоугольнике в массиве lpPoints, второй - целое число, указывающее количество вершин во втором многоугольнике и т д

  • nCount
    Указывает общее число целых чисел в массиве lpPolyCounts.

  • nPolyFillMode
    Указывает режим многоугольник- заливка.Это значение может быть либо ALTERNATE или WINDING.

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

Ненулевой, если операция завершилась успешно; в противном случае – значение 0.

Заметки

Результирующая область хранится в объекте CRgn.

Многоугольники могут быть раздельных или они могут перекрываться.

Размер области ограничен 32.767 32.767 логическими модулями или 64K памяти, какая из этих величин меньше.

При многоугольник- заливка режим ALTERNATE система заливает область между нечетн- пронумерованными и ровн- пронумерованными сторонами многоугольника на каждой линии просмотра.Иными словами, система заливает область между первой и второй стороной между третьей и четвертой стороной и т д

При многоугольник- заливка режим WINDING система использует направление диаграммы, чтобы определить, была ли нарисована заполнить область.Каждый сегмент линии в многоугольнике рисование в или по часовой стрелке или направлении против часовых стрелок.При выписанная мнимая линия из внешней области диаграммы заключенный в проходит через сегмента линий по часовой стрелке, count увеличивается.Если линия проходит через counterclockwise сегмента линий число уменьшается.Область, заполняемую если количество не равен нулю, то при достижении пределами линии диаграммы.

Когда приложение завершила использование область, созданную с помощью функции CreatePolyPolygonRgn, оно должно выделить области из контекста устройства и использование функции-члена CGDIObject::DeleteObject, чтобы удалить их.

Требования

Header: afxwin.h

См. также

Ссылки

Класс CRgn

Диаграмма иерархии

CRgn::CreatePolygonRgn

CDC::SetPolyFillMode

CreatePolyPolygonRgn