Статья: Работа с регионами в Visual C++
// создаём второй регион в другом месте.
// --------------------------------------------------
HRGN hRegion2 = CreateEllipticRgn(140,100,300,240);
OffsetRgn(hRegion2, GetSystemMetrics(SM_CXBORDER)*4, GetSystemMetrics(SM_CYCAPTION));
// --------------------------------------------------
// совмещаем два региона по принципу:
// hRegion1 = hRegion1 + hRegion2.
// --------------------------------------------------
CombineRgn(hRegion1, hRegion1, hRegion2, RGN_OR);
// --------------------------------------------------
// прикрепляем итоговый регион к окну
// --------------------------------------------------
SetWindowRgn(hWnd, hRegion1, true);
// --------------------------------------------------
// удаляем объекты регионов
// --------------------------------------------------
DeleteObject(hRegion1);
DeleteObject(hRegion2);
// --------------------------------------------------
// изменяем стиль окна (избавляемся от заголовка)
// --------------------------------------------------
DWORD dwStyle = GetWindowLong(hWnd, GWL_STYLE);
dwStyle &= ~(WS_CAPTION|WS_SIZEBOX);
SetWindowLong(hWnd, GWL_STYLE, dwStyle);
// --------------------------------------------------
// перерисовываем окно, а так же убираем рамку окна, чтобы
// чтобы нельзя было менять его размер
// --------------------------------------------------
InvalidateRect(hWnd, NULL, TRUE);