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);
}
|
|








