В Win32 API есть набор функций для работы с регионами. При помощи регионов Вы можете создавать различные поверхности, используя только стандартные геометрические фигуры. Ну а дальше всё зависит от Вашей выдумки.
Итак, приступим к определениям:
HRNG:
Это всего лишь тип данных, означающий "хэндл региона". Такой хэндл потребуется для каждого региона, с которым Вы захотите работать.
Пример использования:
Возможно вы искали - Статья: Как написать AJAX-приложение
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
Похожий материал - Реферат: Администрирование SQL Server 2000
При помощи этой функции можно прикрепить регион к любому окну. Например, после использования этой функции, окно может выглядеть следующим образом:

Чтобы проделать такое с окном, понадобятся следующие функции:
// эта функция создаёт круглый регион.
HRGN CreateEllipticRgn (
Очень интересно - Реферат: Использование SQL в прикладном программировании
int nLeftRect, // x-координата верхнего-левого угла
int nTopRect, // y-координата верхнего-левого угла
int nRightRect, // x-координата нижнего-правого угла
int nBottomRect // y-координата нижнего-правого угла
);
Вам будет интересно - Реферат: Электронная картотека планет солнечной системы
// эта функция совмещает два региона
int CombineRgn (
HRGN hrgnDest, // хэндл конечного региона
HRGN hrgnSrc1, // хэндл исходного региона
HRGN hrgnSrc2, // хэндл исходного региона
Похожий материал - Реферат: Использование сжатых дисков
int fnCombineMode // режим совмещения регионов
);
// эта функция прикрепляет регион к окну.
// чтобы убрать регион с окна, надо вместо хэндла региона поставить NULL.