Прочие функции
function EqualRgn (p1, p2: HRGN): BOOL; stdcall;
Проверяет, являются ли размеры и форма регионов p1 и p2 идентичными
function InvertRgn (DC: HDC; p2: HRGN): BOOL; stdcall;
Инвертирует цвета региона p2 на контексте dc
function OffsetRgn (RGN: HRGN; XOffset, YOffset: Integer): Integer; stdcall;
Сдвигает регион rgn по осям X и Y на XOffset и YOffset соответственно
function SetRectRgn (Rgn: HRgn; X1, Y1, X2, Y2: Integer): BOOL; stdcall;
Конвертирует регион rgn в прямоугольный, заданный четырьмя координатами
function GetRgnBox (RGN: HRGN; var p2: TRect): Integer; stdcall;
Возвращает прямоугольник p2, в который вписан указанный регион rgn
function RectInRegion (RGN: HRGN; const Rect: TRect): BOOL; stdcall;
Определяет, "влазит" ли пряпоугольник Rect в границы региона rgn
function PtInRegion (RGN: HRGN; X, Y: Integer): BOOL; stdcall;
Определяет, входит ли точка (X,Y) в регион rgn
function GetRegionData (RGN: HRGN; p2: DWORD; p3: PRgnData): DWORD; stdcall;
Заполняет данными региона rgn буфер PRgnData размером p2, при pRgnData = nil - возвращает размер региона в памяти
Каким же образом это безобидное и абстрактное, в общем-то, понятие взаимодействует со вполне реальными элементами управления? Ведь все перечисленные функции служат, по большому счёту, для того, чтобы создать некую замысловатую фигуру и тем или другим способом отрисовать её в чьём-то контексте, DC, а о том, чтобы каким-то образом изменить форму той же кнопки и речи даже нет. Дело здесь в том, что мы пока мельком рассмотрели функции, касающиеся создания и манипуляций регионами. А ещё существуют функции работы с окнами, и вот там-то нам все наши созданные регионы и пригодятся. Поглядим, что это за функции.
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!