}

if(PtInRegion(T->hrgn. xClick-T->pR.x,yClick-T->pR.y)) //Проверка попадания {if(T->Pos!-D InvalidateRect(hWnd.&r.TRUE); //в правый регион. T->Pos=l:return 1; }

return 0; //Возврат нуля, если щелчок произведен не на тумблере }

Главная функция загружает все необходимые рисунки в оперативную память и создает окно, как показано в листинге 20.7.

Листинг 20.7

int API ENTRY WinMain (HINSTANCE KodPril.HINSTANCE.LPSTR.int Oknlcon) {
MSG msg;
if(LoadRis(&Fon) ) return 2; if(LoadRis(&GI) ) return 2; if(InitTumbl(&Tm) ) return 2; if (InitAppCKodPril)) return 1;
while (GetMessage(&msg. NULL. 0. 0) ) DispatchMessage(&msg );
return 0;
}

//Оконная процедура

LRESULT АРI ENTRY InputWndProc (HWND hWnd .UINT message.

WPARAM wParam.LPARAM lParam)
{
int Res:
switch (message) {
case WM_DESTR0Y: PostQuitMessage(O); break; case WM_CREATE:
{MoveWi ndow(hWnd.100.100.Fon.RX.Fon.RY.TRUE);

//Размер окна задается равным размеру фонового рисунка

HRGN wndrgn - CreateRoundRectRgn(0.0.Fon.RX+l.Fon.RY+1.16.16);
SetWi ndowRgn(hWnd.wndrgn.TRUE):

//Задан оконный регион, чтобы скруглить углы окна.

rrX - GetSystemMetrics(SM_CXFIXEDFRAME)+GetSystemMetrics(SM_CXBORDER):

rrY - GetSystemMetгi cs(SM_CYDLGFRAME)+GetSystemMetri cs(SM_CYB0RDER);

rrC - GetSystemMetrics(SM_CYCAPTI0N):
RECT r;
GetClientRect(hWnd.&r);

hNC - CreateRectRgn(0.0.r.right+2*rrX,rrC+rrY); //Верхняя рамка и заголовок.

HRGN hi - CreateRectRgn(0.0.rrX.r.bottom+rrC+2*rrY): CombineRgn(hNC.hl.hNC.RGN_OR): //Объединение с левой рамкой. DeleteObject(hl);

информационный ресурс http://agro-portal24.ru/.

hi - CreateRectRgn(г.right+rrX.0.r.right+2*rrX+l.r.bottom+rrC+2*rrY); CombineRgn(hNC.hl.hNC.RGN_OR): //Добавили правую рамку DeleteObject(hl):

hi - CreateRectRgn(0.r.bottom+rrC+rrX.r.right+2*rrX.r.bottom+rrC+2*rrY);
CombineRgn(hNC.hl.hNC.RGN OR); A ^

3 - продолжение *У

Создание и применение регионов

Листинг 20.7 {продолжение)

DeleteObject(hl);

//Регион составляется из четырех прямоугольников (верхняя рамка вместе

//с заголовком, левая, правая и нижняя границы окна) при помощи их объединения


⇐ Предыдущая| |Следующая ⇒