do koszyka |
do koszyka |
do koszyka |
do koszyka |
do koszyka |
do koszyka |
do koszyka |
do koszyka |
do koszyka |
WINAPI ostatnia aktualizacja: 23.12.2004 OBSŁUGA KOLEJKI KOMUNIKATÓW OKNA APLIKACJI
Obsługa komunikatów okna. Poprzedni przykład należy rozbudować o obsługę tych zdarzeń które nas interesują.
//domyślna funkcja obsługi okna LRESULT CALLBACK MainWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { //obsługa komunikatów okna switch(message) { //aktywacja okna case WM_ACTIVATE: { // sprawdzenie czy wlaczono MINIMALIZACJE if (!HIWORD(wParam)) { // program aktywny } else { // program zminimalizowany } } //obsługa odrysowania zawartości okna case WM_PAINT: break; // komendy systemowe case WM_SYSCOMMAND: { // sprawdzenie komend switch (wParam) { // czy wlacza sie wygaszacz ekranu ? case SC_SCREENSAVE: // monitopr probuje sie wylaczyc? case SC_MONITORPOWER: //komunikat minimalizacji case SC_MINIMIZE: //komunikat maksymalizacji case SC_MAXIMIZE: //komunikat zamkniecia programu case SC_CLOSE: //komunikat skalowania okna programu case SC_SIZE: //przywracanie okna programu case SC_RESTORE: } break; } // czy przyjeto zgłoszenie zakonczenia programu? case WM_CLOSE: { // wyslanie komunikatu zamykajacego PostQuitMessage(0); return 0; } // czy jakis klawisz jest wcisniety? case WM_KEYDOWN: { //przykladowe sprawdzenie klawisza ESC if (wParam == VK_ESCAPE) { } } // czy jakis klawisz zostal zwolniony? case WM_KEYUP: { } case WM_MOUSEMOVE: { } // komunikat skalowania okna case WM_SIZE: { } //obsluga kontrolek umieszczonych w oknie case WM_COMMAND: if (LOWORD(wParam) == numerkontrolki) { //obsluga } break; } //obslugujemy komunikat o zamknieciu okna case WM_DESTROY: PostQuitMessage(WM_CLOSE); return 0; } // wywołujemy funkcję domyślnej obsługi okna return DefWindowProc(hwnd,message,wParam,lParam); } |
|