Funkcja PeekMessage sprawdza kolejkę wiadomości wątku wiadomości i umieszcza wiadomości (jeśli występują) w określonej struktury.
(BOOL PeekMessage LPMSG lpMsg, / / wskaźnik do struktury dla wiadomościHWNDhWnd, / / dojście do oknaUINTwMsgFilterMin, / / po raz pierwszy wiadomościUINTwMsgFilterMax, / / ostatniego komunikatuUINTwRemoveMsg / / usuwanie flagi);
| Wartość | Znaczenie |
|---|---|
| PM_NOREMOVE | Wiadomości nie są usuwane z kolejki po przetworzeniu przez PeekMessage. |
| PM_REMOVE | Wiadomości są usuwane z kolejki po przetworzeniu przez PeekMessage. |
Opcjonalnie można połączyć wartości PM_NOYIELD z PM_NOREMOVE lub PM_REMOVE. Ta flaga zapobiega zwalniania każdy wątek, który czeka na obiekt wywołujący pójść bezczynności systemu (zobacz Operacja WaitForInputIdle).
Domyślnie wszystkie typy wiadomości są przetwarzane. Aby określić, że tylko niektóre wiadomości powinny być przetwarzane, należy określić jeden lub więcej z następujących wartości:
| Wartość | Znaczenie |
|---|---|
| PM_QS_INPUT | Systemu Windows NT w wersji 5.0 i Windows 98: Przetwarzanie komunikatów myszy i klawiatury. |
| PM_QS_PAINT | Systemu Windows NT w wersji 5.0 i Windows 98: Proces malowania wiadomości. |
| PM_QS_POSTMESSAGE | Systemu Windows NT w wersji 5.0 i Windows 98: Proces wszystkie zaksięgowane wiadomości, łącznie z czasomierzy i klawisze skrótu. |
| PM_QS_SENDMESSAGE | Systemu Windows NT w wersji 5.0 i Windows 98: Proces wszystkie wysyłane wiadomości. |
Jeśli wiadomość jest dostępny, wartość zwracany jest różna od zera.
Jeśli wiadomości nie są dostępne, wartość zwracany jest zero.
W odróżnieniu od funkcji GetMessage funkcja PeekMessage nie czekać na wiadomości mają być umieszczone w kolejce przed zwróceniem.
PeekMessage pobiera tylko wiadomości związane z okna określone przez parametr hWnd lub któregokolwiek z jej dzieci określone przez funkcję IsChild i zakresu wiadomości wartości parametrów wMsgFilterMin i wMsgFilterMax . Jeśli hWnd ma wartość NULL, PeekMessage pobiera wiadomości dla dowolnego okna, należącą do bieżącego wątku wywołania. (PeekMessage nie pobrać wiadomości dla systemu windows, które należą do innych wątków.) Jeśli hWnd jest –1, PeekMessage zwraca tylko wiadomości z hWnd wartość NULL, jak zaksięgowane przez funkcję PostThreadMessage . Jeśli obie zerowe, PeekMessage wMsgFilterMin i wMsgFilterMax zwraca wszystkie dostępne wiadomości (oznacza to, że nie filtrowania zakresu jest wykonywane).
Stałe WM_KEYFIRST i WM_KEYLAST może służyć jako wartości filtru do pobierania wszystkich wiadomości klawiatury; stałe WM_MOUSEFIRST i WM_MOUSELAST może być używana do pobierania wszystkich komunikatów myszy.
Funkcja PeekMessage zwykle nie usunąć WM_PAINT wiadomości z kolejki. Komunikaty WM_PAINT pozostają w kolejce, dopóki nie są przetwarzane. Jednakże jeżeli wiadomość WM_PAINT regionu aktualizacji wartości null, PeekMessage usunąć go z kolejki.
Systemu Windows CE: Komunikaty WM_PAINT z regionem aktualizacji wartości null nie są usuwane z kolejki.
nbsp; Windows &NT: wymagana wersja 3.1 lub nowsza.
Systemu Windows:Wymaga systemu Windows 95 lub nowszego.
Systemu Windows CE:Wymaga wersja 1.0 lub nowsza.
Nagłówka:Zadeklarowane w pliku winuser.h.
Importowanie biblioteki:Należy użyć user32.lib.
Unicode:Implementowane jako wersje Unicode i ANSI w systemie Windows NT.
Omówienie kolejek wiadomości i wiadomości, wiadomości i funkcje kolejek wiadomości, GetMessage, IsChild, MSG, Operacja WaitForInputIdle, WaitMessage