Функция GetRgnBox

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

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

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)

Категория Регионы

В начало.