Статья: Работа с регионами в Visual C++
// -----------------------------------------------------------------------
dcSkin = CreateCompatibleDC(0);
// -----------------------------------------------------------------------
// выбираем битмап для скина
// -----------------------------------------------------------------------
hOldBmp = (HBITMAP)SelectObject(dcSkin, hSkinBmp);
Не забудьте освободить эти объекты перед тем как Ваше приложение завершит свою работу.
3 - Создаём переключатель между нормальным режимом и скином:
case VK_SPACE:
{
if (!bRegioned)
RegionMe();
else
UnRegionMe();
break;
}
Этот фрагмент кода необходмо поместить в главную оконную процедуру в обработчик сообщения WM_KEYDOWN. Здесь используются две небольшие собственные функции RegionMe() и UnregionMe() для переключения режима.
4 - Скрываем заголовок окна и блокируем изменение его размеров в режиме скина:
// ------------------------------------------------------------------------
// Создаём основной регион и устанавливаем его на окно.
// ------------------------------------------------------------------------
void RegionMe()
{
// --------------------------------------------------
// создаём круглый регион и используем отрицательную
// координату, чтобы регион захватил заголовок окна.
// --------------------------------------------------
HRGN hRegion1 = CreateEllipticRgn(20,-20,190,150);
OffsetRgn(hRegion1, GetSystemMetrics(SM_CXBORDER)*4, GetSystemMetrics(SM_CYCAPTION));