Статья: Работа с регионами в Visual C++
HWND hWnd, // хэндл окна, на которое будет установлен регион
HRGN hRgn, // хэндл региона
BOOL bRedraw // флаг перерисовки окна
);
Ну а теперь взглянем на реальный код, который демонстрирует создание окна, изображение которого приведено выше:
// --------------------------------------------------
// Создаём круглый регион.
// Используем отрицательную начальную координату, чтобы наш элипс
// захватил заголовок окна.
// --------------------------------------------------
HRGN hRegion1 = CreateEllipticRgn(20,-20,190,150);
// --------------------------------------------------
// создаём ещё один круглый регион в другом месте.
// --------------------------------------------------
HRGN hRegion2 = CreateEllipticRgn(140,100,300,240);
// --------------------------------------------------
// склеиваем два региона, чтобы сделать новый регион.
// итоговый регион будет помещён в region1,
// подобнооперации:
//
// hRegion1 = hRegion1 + hRegion2.
//
// в функции CombineRgn() можно использовать набор операций RGN_.
// --------------------------------------------------
CombineRgn(hRegion1, hRegion1, hRegion2, RGN_OR);
// --------------------------------------------------
// прикрепляемрегионкокну
// --------------------------------------------------
SetWindowRgn(hWnd, hRegion1, true);