Функция CreatePolygonRgn

Declare Function CreatePolygonRgn Lib "gdi32.dll" (lpPoint As POINTAPI, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long

Платформа: Win 95/98, Win NT

CreatePolygonRgn создает многоугольник-регион,определяемый массивом точек.В успешном случае функция возвращает дескриптор к созданному региону или 0 в случае ошибки.

lpPoint
Массив точек,определяющих вершины многоугольника.
nCount
Число элементов в массиве lpPoint.
nPolyFillMode
Один из следующих флагов, определяющих режим заполнения многоугольника:
ALTERNATE = 1
Выбор между заполнением и незаполнением непрерывных секций, чьи границы определены краями многоугольника, пересекающегося через внутреннюю область многоугольника.
WINDING = 2
Любая секция внутри многоугольника заполнена, независимо от любых внутренних многоугольных границ и граней.

Пример:

' Инвертируем пикселы в пределах треугольной области на окне Form1. Треугольная
' область имеет вершины (150,150), (250, 200), и (100, 200). Обратите внимание, как точки загружены
' в массив вершин. 
Dim vertex(0 To 2) As POINTAPI  ' массив вершин треугольника
Dim hrgn As Long  ' дескриптор к треугольной области
Dim retval As Long  ' возвращаемое значение

' загружаем вершины треугольной области в массив.
vertex(0).x = 150: vertex(0).y = 150  ' 1 точка: (150,150)
vertex(1).x = 250: vertex(1).y = 200  ' 2 точка: (250,200)
vertex(2).x = 100: vertex(2).y = 200  ' 3 точка: (100,200)

' создаем многоугольную область,используя массив вершин.
hrgn = CreatePolygonRgn(vertex(0), 3, ALTERNATE) 
 ' инвертируем пикселы в пределах треугольной области на Form1.
retval = InvertRgn(Form1.hDC, hrgn)
' удаляем регион для высвобождения ресурсов.
retval = DeleteObject(hrgn)

Схожие функции: CreatePolyPolygonRgn
Категория: Регионы

В начало.