Wnd Proc LRESULT CALLBACK Wnd ProcHWND hwnd UINT
/*Оконная функция Wnd. Proc главного окна*/ LRESULT CALLBACK Wnd. Proc(HWND hwnd, UINT msg, WPARAM w. Param, LPARAM l. Param) switch(msg){ case WM_COMMAND: { static HBRUSH h. Blue. Brush, h. Green. Brush; case WM_CREATE: { switch(w. Param) static int sw; h. Blue. Brush = Create. Solid. Brush(RGB(100, 255)); case MI_BLUE: h. Green. Brush=Create. Solid. Brush(RGB(100, 255, 100)); sw=1; break; Invalidate. Rect(hwnd, NULL, TRUE); break; case MI_GREEN: sw=2; case MI_EXIT: Invalidate. Rect(hwnd, NULL, TRUE); Destroy. Window(hwnd); break; }
case WM_Paint: PAINTSTRUCT ps; HDC hdc=Begin. Paint( hwnd, &ps); if(sw==1) Fill. Rect( hdc, &ps. rc. Paint, h. Blue. Brush); if(sw==2) Fill. Rect( hdc, &ps. rc. Paint, h. Green. Brush); End. Paint( hwnd, &ps); break;
case WM_RBUTTONDOWN: HMENU h. Popup. Menu = Create. Popup. Menu(); Append. Menu(h. Popup. Menu, MF_STRING, MI_BLUE, _T(“Фон: Синий”)); Append. Menu(h. Popup. Menu, MF_STRING, MI_GREEN, _T(“Фон: Зелёный”)); Append. Menu(h. Popup. Menu, MF_SEPARATOR, 0, NULL); Append. Menu(h. Popup. Menu, MF_STRING, MI_EXIT, _T(“Выход”); Track. Popup. Menu(h. Popup. Menu, TPM_LEFTBUTTON | TPM_LEFTALIGN, Msg. pt. x, Msg. pt. y, 0, h. Wnd, NULL); break;
- Slides: 9