Declare Function OffsetRgn Lib "gdi32" (ByVal hRgn As Long, ByVal x As Long, ByVal y As Long) As Long
Функция возвращает одно из следующих значений:
COMPLEXREGION = 3 | Регион состоит из нескольких прямоугольников |
NULLREGION = 1 | Регион пуст |
SIMPLEREGION = 2 | Регион является прямоугольником |
ERROR | Произошла ошибка |
' На 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)