Статья: Работа с регионами в Visual C++

В Win32 API есть набор функций для работы с регионами. При помощи регионов Вы можете создавать различные поверхности, используя только стандартные геометрические фигуры. Ну а дальше всё зависит от Вашей выдумки.

Итак, приступим к определениям:

HRNG:

Это всего лишь тип данных, означающий "хэндл региона". Такой хэндл потребуется для каждого региона, с которым Вы захотите работать.

Пример использования:

HRGN hRegion = CreateRectRgn(x,y,x+128,y+128);

После завершения работы с регионом, необходимо удалить объект, связанный с регионом при помощи функции DeleteObject().

CombineRgn, CreateEllipticRgn, CreateEllipticRgnIndirect, CreatePolygonRgn, CreatePolyPolygonRgn, CreateRectRgn, CreateRectRgnIndirect, CreateRoundRectRgn, EqualRgn, ExtCreateRegion, FillRgn, FrameRgn, GetPolyFillMode, GetRegionData, GetRgnBox, InvertRgn, OffsetRgn, PaintRgn, PtInRegion, RectInRegion, SetPolyFillMode.

Это основные функции, которые предназначены для создания и работы с регионами. Как видно из названий, регионы можно создавать круглые, квадратные, а также любой другой формы.

SetWindowRgn

При помощи этой функции можно прикрепить регион к любому окну. Например, после использования этой функции, окно может выглядеть следующим образом:

Чтобы проделать такое с окном, понадобятся следующие функции:

// эта функция создаёт круглый регион.

HRGN CreateEllipticRgn (

int nLeftRect, // x-координата верхнего-левого угла

int nTopRect, // y-координата верхнего-левого угла

int nRightRect, // x-координата нижнего-правого угла

int nBottomRect // y-координата нижнего-правого угла

);

// эта функция совмещает два региона

int CombineRgn (

HRGN hrgnDest, // хэндл конечного региона

HRGN hrgnSrc1, // хэндл исходного региона

HRGN hrgnSrc2, // хэндл исходного региона

int fnCombineMode // режим совмещения регионов

);

// эта функция прикрепляет регион к окну.

// чтобы убрать регион с окна, надо вместо хэндла региона поставить NULL.

--> ЧИТАТЬ ПОЛНОСТЬЮ <--

К-во Просмотров: 491
Бесплатно скачать Статья: Работа с регионами в Visual C++