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. |