Функция GetRgnBox

Declare Function GetRgnBox Lib "gdi32" (ByVal hRgn As Long, lpRect As RECT) As Long

GetRgnBox определяет прямоугольник, ограничивающий данный регион. Прямоугольник ограничения - самый маленький возможный прямоугольник, который полностью окружает регион. Прямоугольник ограничения помещен в структуру lpRect

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

Функция возвращает 0 в случае ошибки или точно один из следующих флажков, определяющих форму региона:

COMPLEXREGION = 3
Область не пуста, но не прямоугольна
NULLREGION = 1
Область пуста, то есть - пустой указатель
SIMPLEREGION = 2
Область прямоугольна

Параметры

hRgn
Дескриптор региона, чтобы получить прямоугольник ограничения
lpRect
Получает координаты прямоугольника ограничения региона

Пример

' Заполним треугольную область на Form1 темным серым цветом и заполним ограничивающий
' прямоугольник (позади него) светло-серым
Dim triangle(0 To 2) As POINTAPI  ' вершина треугольной области
Dim hRgn As Long  ' дескриптор треугольной области
Dim hLightBrush As Long, hDarkBrush As Long  ' дескрипторы к двум кистям
Dim bounding As RECT  ' ограничительный прямоугольник региона
Dim retval As Long  ' возвращаемое значение
' Устанавим BackColor формы в красный цвет
' Создаем треугольную область
Form1.BackColor=vbRed
triangle(0).x = 150: triangle(0).y = 100  ' точка #1: (150,100)
triangle(1).x = 200: triangle(1).y = 150  ' точка #2: (200,150)
triangle(2).x = 175: triangle(2).y = 200  ' точка #3: (175,200)
hRgn = CreatePolygonRgn(triangle(0), 3, ALTERNATE)  ' Создаем регион
' Получим дескрипторы к светлому и темному серым твердым кистям
hLightBrush = GetStockObject(LTGRAY_BRUSH)
hDarkBrush = GetStockObject(DKGRAY_BRUSH)

' Вычисляем ограничительный прямоугольник треугольной области
retval = GetRgnBox(hRgn, bounding)  ' теперь вычерчиваем ограничительный прямоугольник,
' заполняя ограничительный прямоугольник светло-серым,а регион темно-серым цветом
retval = FillRect(Form1.hDC, bounding, hLightBrush)
retval = FillRgn(Form1.hDC, hRgn, hDarkBrush)

' Удаляем регион для освобождения ресурсов.
retval = DeleteObject(hRgn)

Категория

Регионы