Sdílet prostřednictvím


Zprávy a fronty zpráv

Tato část popisuje zprávy a fronty zpráv a jejich použití v aplikacích.

V této části

Jméno Popis
o zprávách a frontách zpráv Tato část popisuje zprávy systému Windows a fronty zpráv.
používání zpráv a front zpráv Následující příklady kódu ukazují, jak provádět následující úlohy spojené se zprávami a frontami zpráv systému Windows.
referenční zpráv Obsahuje referenční informace k rozhraní API.

System-Provided zprávy

Seznam systémových zpráv naleznete v tématu System-Defined Zprávy.

Funkce zpráv

Jméno Popis
BroadcastSystemMessage Odešle zprávu určeným příjemcům. Příjemci mohou být aplikace, instalovatelné ovladače, síťové ovladače, ovladače zařízení na úrovni systému nebo libovolnou kombinaci těchto systémových komponent.
Pokud chcete získat další informace, pokud je požadavek definován, použijte funkci BroadcastSystemMessageEx.
BroadcastSystemMessageEx Odešle zprávu určeným příjemcům. Příjemci mohou být aplikace, instalovatelné ovladače, síťové ovladače, ovladače zařízení na úrovni systému nebo libovolnou kombinaci těchto systémových komponent.
Tato funkce je podobná BroadcastSystemMessage s tím rozdílem, že tato funkce může vrátit další informace od příjemců.
DispatchMessage Odešle zprávu do procedury okna. Obvykle se používá k odeslání zprávy načtené funkcí GetMessage.
GetInputState Určuje, zda jsou ve frontě zpráv volajícího vlákna zprávy tlačítka myši nebo klávesnice.
GetMessage Načte zprávu z fronty zpráv volajícího vlákna. Funkce odesílá příchozí odeslané zprávy, dokud nebude k dispozici odeslaná zpráva pro načtení.
Na rozdíl od GetMessage, funkce PeekMessage nečeká na odeslání zprávy před vrácením.
GetMessageExtraInfo Načte další informace o zprávě pro aktuální vlákno. Další informace o zprávě jsou hodnota definovaná aplikací nebo ovladačem přidružená k frontě zpráv aktuálního vlákna.
GetMessagePos Načte pozici kurzoru poslední zprávy načtené funkcí GetMessage.
K určení aktuální pozice kurzoru použijte funkci GetCursorPos.
GetMessageTime Načte čas zprávy poslední zprávy načtené funkcí GetMessage. Čas je dlouhé celé číslo, které určuje uplynulý čas v milisekundách od okamžiku, kdy byl systém zahájen do doby, kdy byla zpráva vytvořena (tedy umístěna ve frontě zpráv vlákna).
GetQueueStatus Označuje typ zpráv nalezených ve frontě zpráv volajícího vlákna.
InSendMessage Určuje, zda aktuální okno procedura zpracovává zprávu, která byla odeslána z jiného vlákna (ve stejném procesu nebo jiný proces) voláním SendMessage funkce.
Pokud chcete získat další informace o tom, jak byla zpráva odeslána, použijte funkci InSendMessageEx.
InSendMessageEx Určuje, zda aktuální procedura okna zpracovává zprávu odeslanou z jiného vlákna (ve stejném procesu nebo jiném procesu).
PeekMessage Odešle příchozí odeslané zprávy, zkontroluje frontu zpráv ve vlákně pro zaúčtované zprávy a načte zprávu (pokud existuje).
PostMessage Publikuje zprávu ve frontě zpráv přidružené k vláknu, které vytvořilo zadané okno, a vrátí zprávu bez čekání na zpracování zprávy ve vlákně.
Chcete-li publikovat zprávu ve frontě zpráv přidružené k vláknu, použijte funkci PostThreadMessage.
PostQuitMessage Označuje systém, že vlákno vytvořilo požadavek na ukončení (ukončení). Obvykle se používá v reakci na zprávu WM_DESTROY.
PostThreadMessage Odešle zprávu do fronty zpráv zadaného vlákna. Vrátí se bez čekání na zpracování zprávy ve vlákně.
RegisterWindowMessage Definuje novou zprávu okna, která zaručuje, že bude v celém systému jedinečná. Hodnotu zprávy lze použít při odesílání nebo publikování zpráv.
ReplyMessage Odpoví na zprávu poslanou prostřednictvím funkce SendMessage bez vrácení kontroly na funkci, která volala SendMessage.
SendAsyncProc Funkce zpětného volání definovaná aplikací použitá s funkcí SendMessageCallback. Systém předá zprávu funkci zpětného volání po předání zprávy do cílového okna. Typ SENDASYNCPROC definuje ukazatel na tuto funkci zpětného volání. sendAsyncProc je zástupný symbol pro název funkce definované aplikací.
SendMessage Odešle zadanou zprávu do okna nebo oken. Funkce SendMessage volá proceduru okna pro zadané okno a nevrací, dokud procedura okna nezpracovala zprávu.
Chcete-li odeslat zprávu a vrátit se okamžitě, použijte funkci SendMessageCallback nebo SendNotifyMessage. Chcete-li odeslat zprávu do fronty zpráv vlákna a vrátit se okamžitě, použijte funkci PostMessage nebo PostThreadMessage.
SendMessageCallback Odešle zadanou zprávu do okna nebo oken. Volá proceduru okna pro zadané okno a vrátí okamžitě. Jakmile procedura okna zpracuje zprávu, systém zavolá zadanou funkci zpětného volání, předá výsledek zpracování zprávy a hodnotu definovanou aplikací do funkce zpětného volání.
SendMessageTimeout Odešle zadanou zprávu do jednoho z více oken.
SendNotifyMessage Odešle zadanou zprávu do okna nebo oken. Pokud bylo okno vytvořeno volajícím vláknem, SendNotifyMessage volá proceduru okna pro okno a nevrací, dokud procedura okna nezpracovala zprávu. Pokud bylo okno vytvořeno jiným vláknem, SendNotifyMessage předá zprávu do procedury okna a vrátí okamžitě; nečeká, až proces okna dokončí zpracování zprávy.
SetMessageExtraInfo Nastaví další informace o zprávě pro aktuální vlákno. Další informace o zprávě jsou hodnota definovaná aplikací nebo ovladačem přidružená k frontě zpráv aktuálního vlákna. Aplikace může použít funkci GetMessageExtraInfo k načtení dalších informací o zprávě vlákna.
TranslateMessage Překládá zprávy virtuálních klíčů na zprávy znaků. Zprávy znaků se publikují do fronty zpráv volajícího vlákna, aby bylo přečteno při příštím volání vlákna GetMessage nebo PeekMessage funkce.
WaitMessage Poskytuje kontrolu nad jinými vlákny v případě, že vlákno nemá žádné jiné zprávy ve frontě zpráv. Funkce WaitMessage pozastaví vlákno a nevrátí se, dokud se do fronty zpráv vlákna nevrátí nová zpráva.

Konstanty zpráv

Jméno Popis
OCM__BASE Používá se k definování soukromých zpráv pro použití v soukromých třídách oken.
WM_APP Slouží k definování soukromých zpráv.
WM_USER Používá se k definování soukromých zpráv pro použití v soukromých třídách oken.

Struktury zpráv

Jméno Popis
BSMINFO Obsahuje informace o okně, které zamítlo požadavek z BroadcastSystemMessageEx.
MSG Obsahuje informace o zprávě z fronty zpráv vlákna.