Функция OffsetRgn

Declare Function OffsetRgn Lib "gdi32" (ByVal hRgn As Long, ByVal x As Long, ByVal y As Long) As Long
OffsetRgn смещает регион в заданном направлении

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

Функция возвращает одно из следующих значений:
COMPLEXREGION = 3Регион состоит из нескольких прямоугольников
NULLREGION = 1Регион пуст
SIMPLEREGION = 2Регион является прямоугольником
ERRORПроизошла ошибка

Параметры

hRgn
Дескриптор региона
x
Смещение по горизонтали в логических единицах. Положительные значения сдвигают вправо, отрицательные - влево
y
Смещение по вертикали в логических единицах. Положительные значения сдвигают вниз, отрицательные - вверх

Пример

' На Form1 заполняем эллипс белым цветом
' Затем смещаем регион на 50 пикселов вправо
' и на 20 пикселов вверх и закрашиваем серым цветом

Dim hRgn As Long  ' дескриптор региона
Dim hWhiteBrush As Long
Dim hDarkBrush As Long  ' дескрипторы кистей
Dim retval As Long ' возвращаемое значение

' Создаем эллипс
hRgn = CreateEllipticRgn(20, 100, 220, 200)
' Получаем дескрипторы к белой и серой кистям
hWhiteBrush = GetStockObject(WHITE_BRUSH)
hDarkBrush = GetStockObject(DKGRAY_BRUSH)

' Заполняем регион белым цветом
retval = FillRgn(Form1.hDC, hRgn, hWhiteBrush)
' Смещаем регион
retval = OffsetRgn(hRgn, 50, -20)
' Закрашиваем смещенный регион серым цветом
retval = FillRgn(Form1.hDC, hRgn, hDarkBrush)

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

Категория

Регионы