GetMessage

Funkcja GetMessage Pobiera wiadomość z kolejki wiadomości wątku wywołującego i umieszcza je w określonej struktury. Tej funkcji można pobierać zarówno wiadomości związane z określonego okna i wątku wiadomości zaksięgowane za pośrednictwem PostThreadMessage funkcji. Funkcja pobiera wiadomości, które znajdują się w określonym przedziale wartości wiadomości. GetMessage nie pobierać wiadomości dla systemu windows, które należą do innych wątków lub aplikacji.

(BOOL GetMessage LPMSG  lpMsg, / / adresu struktury z wiadomościHWNDhWnd, / / uchwyt oknaUINTwMsgFilterMin, / / po raz pierwszy wiadomościUINTwMsgFilterMax / / ostatniego komunikatu);
 

Parametry

lpMsg
Wskaźnik do struktury MSG , który otrzymuje informacje o wiadomości z kolejki wiadomości wątku.
hWnd
Dojście do okna, której wiadomości mają być pobierane. Jedna wartość ma specjalne znaczenie:
Wartość Znaczenie
WARTOŚĆ NULL GetMessage pobiera wiadomości dla dowolnego okna, należącą do wywołania wątku i wątku wiadomości wysłane do wywołania wątku za pośrednictwem PostThreadMessage.

wMsgFilterMin
Określa wartość całkowitą wartością najniższą wiadomości mają być pobrane.
wMsgFilterMax
Określa wartość całkowitą wartością najwyższą wiadomości mają być pobrane.

Zwraca wartości

Jeśli funkcja pobiera wiadomości innych niż WM_QUIT, wartość zwracany jest różna od zera.

Jeśli funkcja pobiera komunikat WM_QUIT, wartość zwracany jest zero.

Jeśli wystąpi błąd, wartość zwracany jest –1. Na przykład funkcja zawiedzie, jeżeli hWnd jest dojście do okna nieprawidłowe lub lpMsg jest nieprawidłowy wskaźnik. Aby uzyskać rozszerzonych informacji o błędach, należy wywołać GetLastError.

Uwagi

Aplikacja używa zazwyczaj wartość zwracany do ustalenia, czy kończyć pętli głównej wiadomości i zamknąć program.

Funkcja GetMessage pobiera tylko wiadomości związane z okna określone przez parametr hWnd lub któregokolwiek z jej dzieci, jak określono przez funkcję IsChild i zakresu wiadomości wartości parametrów wMsgFilterMin i wMsgFilterMax . Jeśli hWnd ma wartość NULL, GetMessage pobiera wiadomości dla dowolnego okna, należącą do wywołania wątku i wątku wiadomości wysłane do wywołania wątku za pośrednictwem PostThreadMessage. GetMessage nie pobierać wiadomości dla systemu windows, które należą do innych wątków, ani dla wątków innych niż wywołania wątku, nawet jeśli hWnd nie jest NULL. Wątku wiadomości, wysłane przez funkcję PostThreadMessage ma hWnd komunikat o wartości NULL. Jeśli wMsgFilterMin i wMsgFilterMax są obie zerowe, GetMessage 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 związane z klawiatury; stałe WM_MOUSEFIRST i WM_MOUSELAST może być używana do pobierania wszystkich komunikatów myszy. Jeżeli parametry wMsgFilterMin i wMsgFilterMax są zarówno zera, funkcja GetMessage zwraca wszystkie dostępne wiadomości (które jest bez wykonywania wszelkie filtrowania).

GetMessage nie powoduje usunięcia WM_PAINT wiadomości z kolejki. Wiadomości pozostają w kolejce do czasu przetworzenia.

Należy zauważyć, że wartość zwracany funkcji może być różna od zera, zero lub -1. W związku z tym należy unikać poniższego kodu:

podczas (GetMessage (lpMsg, hWnd, 0, 0))... 

 

Możliwość zwrotu wartość-1 oznacza, że taki kod może prowadzić do błędów aplikacji krytyczny.

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, IsChild, MSG, PeekMessage, PostMessage, PostThreadMessage, WaitMessage

Index