PeekMessage

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

Parametry

lpMsg
Wskaźnik do struktury MSG , który otrzyma komunikat informacji.
hWnd
Dojście do okna, której wiadomości mają być badane.
wMsgFilterMin
Określa wartość pierwszej wiadomości w zakresie wiadomości należy zbadać.
wMsgFilterMax
Określa wartość ostatniej wiadomości w zakresie wiadomości należy zbadać.
wRemoveMsg
Określa, w jaki sposób wiadomości są obsługiwane. Ten parametr może mieć jedną z następujących wartości:
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.

Zwraca wartoś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.

Uwagi

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.

Skrócone informacje

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.

Zobacz też

Omówienie kolejek wiadomości i wiadomości, wiadomości i funkcje kolejek wiadomości, GetMessage, IsChild, MSG, Operacja WaitForInputIdle, WaitMessage

Index