Статья: Работа с регионами в Visual C++
HRSRC hrSkin = FindResource(hInstance, MAKEINTRESOURCE(IDB_SKIN),"BINARY");
if (!hrSkin) return false;
// загружаемстандартный "BINARY" ресурс.
LPRGNDATA pSkinData = (LPRGNDATA)LoadResource(hInstance, hrSkin);
if (!pSkinData) return false;
// создаёмрегион.
HRGN rgnSkin = ExtCreateRegion(NULL, SizeofResource(NULL,hrSkin), pSkinData);
// освобождаем выделенный ресурс
FreeResource(pSkinData);
После этого, регион достаточно будет прицепить к окну. И не забудьте удалить регион перед завершением приложения командой DeleteObject(rgnSkin).
В заключении, неплохо было бы заключить весь вышеприведённый материал в класс, чтобы код удобнее читался:
Удачи!