Статья: Работа с регионами в Visual C++
// удаляемобъектырегионов
// --------------------------------------------------
DeleteObject(hRegion1);
DeleteObject(hRegion2);
Чтобы вернуть окно в нормальное состояние (без региона), воспользуйтесь следующей функцией:
SetWindowRgn(hWnd, NULL, true);
Скачатьпример - 13Кб
СКИНЫ
Тема скинов довольно популярна в программировании. При помощи скинов мы можем придать стандартному окну привлекательный вид:
Для этого необходим битмап, который заполнит всё окно. На приведённой картинке используется окно размером 320х240 и такого же размера битмап.
Давайте создадим небольшое демонстрационное приложение. Ниже приведены шаги, которые потребуется проделать:
1 - Загружаем битмап;
2 - Создаём контекст устройства для скина и выбираем в нём битмап;
3 - Создаём переключатель между нормальным режимом и скином;
4 - Скрываем заголовок окна и блокируем изменение его размеров в режиме скина;
5 - Показываем заголовок окна и разблокируем его при выходе из режима скина;
6 - Обрабатываем перерисовку скина в сообщении WM_PAINT;
7 - Обрабатываем сообщение WM_LBUTTON, чтобы пользователь мог перетаскивать окно за любую часть в режиме скина;
А теперь каждый шаг подробнее:
1- Загружаем битмап:
// -----------------------------------------------------------------------
// загружаем битмап скина из ресурса
// -----------------------------------------------------------------------
hSkinBmp = LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_SKIN));
if (!hSkinBmp) return -1;
Как видно из кода, ничего сложного. Конечно можно загружать картинки других форматов, но это тема другой статьи.
2 - Создаём контекст устройства для скина и выбираем в нём битмап:
// -----------------------------------------------------------------------