Статья: Работа с регионами в Visual C++
bRegioned = false;
}
6 - Обрабатываем перерисовку скина в сообщении WM_PAINT:
case WM_PAINT:
{
PAINTSTRUCT ps;
BeginPaint(hWnd,&ps);
// рисуем скин на окне
if (bRegioned) SkinMe(ps.hdc);
// рисуемтекст
SetBkMode(ps.hdc,TRANSPARENT);
SetTextColor(ps.hdc,RGB(255,0,0));
TextOut(ps.hdc, 115,90, "Press SPACE", 11);
EndPaint(hWnd,&ps);
break;
}
Функция SkinMe() вызывается только в том случае, если приложение находится в режиме скина (bRegioned).
Функция SkinMe() выглядит следующим образом:
void SkinMe(HDC dc)
{
BitBlt(dc, 0,0,320,240, dcSkin, 0,0, SRCCOPY);
}
7 - Обрабатываем сообщение WM_LBUTTON, чтобы пользователь мог перетаскивать окно за любую часть в режиме скина:
case WM_LBUTTONDOWN:
{
// ---------------------------------------------------------
// Посылаем сообщение окну, чтобы оно думало, что кликнули по его заголовку.
// ---------------------------------------------------------
if (bRegioned) SendMessage(hWnd, WM_NCLBUTTONDOWN, HTCAPTION,NULL);