Udostępnij za pośrednictwem


Komunikaty i kolejki komunikatów

W tej sekcji opisano komunikaty i kolejki komunikatów oraz sposób ich używania w aplikacjach.

W tej sekcji

Nazwa Opis
informacje o komunikatach i kolejkach komunikatów W tej sekcji omówiono komunikaty systemu Windows i kolejki komunikatów.
przy użyciu komunikatów i kolejek komunikatów W poniższych przykładach kodu pokazano, jak wykonywać następujące zadania skojarzone z komunikatami systemu Windows i kolejkami komunikatów.
dokumentacji komunikatów Zawiera dokumentację interfejsu API.

komunikaty System-Provided

Aby uzyskać listę komunikatów dostarczanych przez system, zobacz System-Defined Messages.

Funkcje komunikatów

Nazwa Opis
BroadcastSystemMessage Wysyła wiadomość do określonych adresatów. Odbiorcy mogą być aplikacjami, sterownikami instalowanymi, sterownikami sieciowymi, sterownikami urządzeń na poziomie systemu lub dowolną kombinacją tych składników systemowych.
Aby uzyskać dodatkowe informacje, jeśli żądanie jest zdefiniowane, użyj funkcji BroadcastSystemMessageEx.
BroadcastSystemMessageEx Wysyła wiadomość do określonych adresatów. Odbiorcy mogą być aplikacjami, sterownikami instalowanymi, sterownikami sieciowymi, sterownikami urządzeń na poziomie systemu lub dowolną kombinacją tych składników systemowych.
Ta funkcja jest podobna do BroadcastSystemMessage z tą różnicą, że ta funkcja może zwrócić więcej informacji od adresatów.
DispatchMessage Wysyła komunikat do procedury okna. Zazwyczaj służy do wysyłania komunikatu pobranego przez funkcję GetMessage.
getInputState Określa, czy w kolejce komunikatów wątku wywołującego istnieją komunikaty myszy lub klawiatury.
GetMessage Pobiera komunikat z kolejki komunikatów wątku wywołującego. Funkcja wysyła przychodzące komunikaty wysyłane do momentu, gdy wysłana wiadomość będzie dostępna do pobrania.
W przeciwieństwie do GetMessage funkcja PeekMessage nie czeka na opublikowanie wiadomości przed zwróceniem.
GetMessageExtraInfo Pobiera dodatkowe informacje o wiadomościach dla bieżącego wątku. Dodatkowe informacje o komunikatach to wartość zdefiniowana przez aplikację lub sterownik skojarzona z kolejką komunikatów bieżącego wątku.
GetMessagePos Pobiera położenie kursora dla ostatniej wiadomości pobranej przez funkcję GetMessage.
Aby określić bieżącą pozycję kursora, użyj funkcji GetCursorPos.
GetMessageTime Pobiera czas komunikatu dla ostatniej wiadomości pobranej przez funkcję GetMessage. Czas to długa liczba całkowita określająca czas, który upłynął (w milisekundach) od momentu uruchomienia systemu do momentu utworzenia komunikatu (czyli umieszczonego w kolejce komunikatów wątku).
GetQueueStatus Wskazuje typ komunikatów znalezionych w kolejce komunikatów wywołującego wątku.
InSendMessage Określa, czy bieżąca procedura okna przetwarza komunikat wysłany z innego wątku (w tym samym lub innym procesie) przez wywołanie funkcji SendMessage.
Aby uzyskać dodatkowe informacje na temat sposobu wysyłania komunikatu, użyj funkcji InSendMessageEx.
InSendMessageEx Określa, czy bieżąca procedura okna przetwarza komunikat, który został wysłany z innego wątku (w tym samym procesie lub w innym procesie).
PeekMessage Wysyła przychodzące wiadomości, sprawdza kolejkę komunikatów wątku pod kątem komunikatu opublikowanego i pobiera komunikat (jeśli istnieje).
PostMessage Publikuje komunikat w kolejce komunikatów skojarzony z wątkiem, który utworzył określone okno i powraca bez oczekiwania na przetworzenie komunikatu przez wątek.
Aby opublikować komunikat w kolejce komunikatów skojarzonej z wątkiem, użyj funkcji PostThreadMessage.
postquitmessage Wskazuje system, że wątek złożył żądanie zakończenia (zamknij). Zazwyczaj jest on używany w odpowiedzi na komunikat WM_DESTROY.
PostThreadMessage Publikuje komunikat w kolejce komunikatów określonego wątku. Zwracany jest bez oczekiwania na przetworzenie komunikatu przez wątek.
RegisterWindowMessage Definiuje nowy komunikat okna, który ma być unikatowy w całym systemie. Wartość komunikatu może być używana podczas wysyłania lub publikowania komunikatów.
ReplyMessage Odpowiada na wiadomość wysłaną za pośrednictwem funkcjiSendMessage bez zwracania kontroli do funkcji o nazwie SendMessage.
SendAsyncProc Funkcja wywołania zwrotnego zdefiniowana przez aplikację używana z funkcją SendMessageCallback. System przekazuje komunikat do funkcji wywołania zwrotnego po przekazaniu komunikatu do procedury okna docelowego. Typ SENDASYNCPROC definiuje wskaźnik dla tej funkcji wywołania zwrotnego. SendAsyncProc jest symbolem zastępczym nazwy funkcji zdefiniowanej przez aplikację.
SendMessage Wysyła określony komunikat do okna lub okna. Funkcja SendMessage wywołuje procedurę okna dla określonego okna i nie zwraca się, dopóki procedura okna nie przetworzy komunikatu.
Aby wysłać wiadomość i zwrócić natychmiast, użyj funkcjiSendMessageCallback lub SendNotifyMessage. Aby opublikować komunikat w kolejce komunikatów wątku i zwrócić go natychmiast, użyj funkcji PostMessage lub PostThreadMessage.
SendMessageCallback Wysyła określony komunikat do okna lub okna. Wywołuje procedurę okna dla określonego okna i zwraca natychmiast. Po przetworzeniu komunikatu przez procedurę okna system wywołuje określoną funkcję wywołania zwrotnego, przekazując wynik przetwarzania komunikatów i wartość zdefiniowaną przez aplikację do funkcji wywołania zwrotnego.
SendMessageTimeout Wysyła określony komunikat do jednego z więcej okien.
SendNotifyMessage Wysyła określony komunikat do okna lub okna. Jeśli okno zostało utworzone przez wątek wywołujący, SendNotifyMessage wywołuje procedurę okna dla okna i nie zwraca się, dopóki procedura okna nie przetworzy komunikatu. Jeśli okno zostało utworzone przez inny wątek, SendNotifyMessage przekazuje komunikat do procedury okna i zwraca natychmiast; nie czeka na zakończenie przetwarzania komunikatu przez procedurę okna.
SetMessageExtraInfo Ustawia dodatkowe informacje o komunikatach dla bieżącego wątku. Dodatkowe informacje o komunikatach to wartość zdefiniowana przez aplikację lub sterownik skojarzona z kolejką komunikatów bieżącego wątku. Aplikacja może użyć funkcji GetMessageExtraInfo, aby pobrać dodatkowe informacje o wiadomości wątku.
TranslateMessage Tłumaczy komunikaty klucza wirtualnego na komunikaty znakowe. Komunikaty znaków są publikowane w kolejce komunikatów wątku wywołującego, aby odczytywać przy następnym wywołaniu wątku GetMessage lub funkcji PeekMessage.
WaitMessage Daje kontrolę nad innymi wątkami, gdy wątek nie ma innych komunikatów w kolejce komunikatów. Funkcja WaitMessage zawiesza wątek i nie zwraca się, dopóki nowy komunikat nie zostanie umieszczony w kolejce komunikatów wątku.

Stałe komunikatów

Nazwa Opis
OCM__BASE Służy do definiowania prywatnych komunikatów do użycia przez klasy okien prywatnych.
WM_APP Służy do definiowania wiadomości prywatnych.
WM_USER Służy do definiowania prywatnych komunikatów do użycia przez klasy okien prywatnych.

Struktury komunikatów

Nazwa Opis
BSMINFO Zawiera informacje o oknie, które odrzuciło żądanie od BroadcastSystemMessageEx.
MSG Zawiera informacje o wiadomościach z kolejki komunikatów wątku.