Messaggi e code di messaggi

In questa sezione vengono descritti messaggi e code di messaggi e come usarli nelle applicazioni.

Contenuto della sezione

Nome Descrizione
Informazioni sui messaggi e sulle code di messaggi Questa sezione illustra i messaggi e le code di messaggi di Windows.
Uso di messaggi e code di messaggi Gli esempi di codice seguenti illustrano come eseguire le attività seguenti associate ai messaggi e alle code dei messaggi di Windows.
Informazioni di riferimento sul messaggio Contiene il riferimento all'API.

messaggi System-Provided

Per elenchi dei messaggi forniti dal sistema, vedere Messaggi definiti dal sistema.

Funzioni di messaggio

Nome Descrizione
BroadcastSystemMessage Invia un messaggio ai destinatari specificati. I destinatari possono essere applicazioni, driver installabili, driver di rete, driver di dispositivo a livello di sistema o qualsiasi combinazione di questi componenti di sistema.
Per ricevere informazioni aggiuntive se la richiesta è definita, usare la funzione BroadcastSystemMessageEx .
BroadcastSystemMessageEx Invia un messaggio ai destinatari specificati. I destinatari possono essere applicazioni, driver installabili, driver di rete, driver di dispositivo a livello di sistema o qualsiasi combinazione di questi componenti di sistema.
Questa funzione è simile a BroadcastSystemMessage , ad eccezione del fatto che questa funzione può restituire altre informazioni dai destinatari.
DispatchMessage Invia un messaggio a una procedura di finestra. In genere viene usato per inviare un messaggio recuperato dalla funzione GetMessage .
GetInputState Determina se nella coda del messaggio del thread chiamante sono presenti messaggi con pulsante del mouse o tastiera.
GetMessage Recupera un messaggio dalla coda di messaggi del thread chiamante. La funzione invia messaggi inviati in ingresso fino a quando non è disponibile un messaggio pubblicato per il recupero.
A differenza di GetMessage, la funzione PeekMessage non attende la pubblicazione di un messaggio prima della restituzione.
GetMessageExtraInfo Recupera le informazioni aggiuntive sul messaggio per il thread corrente. Le informazioni sui messaggi aggiuntivi sono un valore definito dall'applicazione o dal driver associato alla coda di messaggi del thread corrente.
GetMessagePos Recupera la posizione del cursore per l'ultimo messaggio recuperato dalla funzione GetMessage .
Per determinare la posizione corrente del cursore, usare la funzione GetCursorPos .
GetMessageTime Recupera l'ora del messaggio per l'ultimo messaggio recuperato dalla funzione GetMessage . Il tempo è un intero lungo che specifica il tempo trascorso, in millisecondi, dal momento in cui il sistema è stato avviato al momento in cui è stato creato il messaggio, ovvero inserito nella coda del messaggio del thread.
GetQueueStatus Indica il tipo di messaggi trovati nella coda del messaggio del thread chiamante.
InSendMessage Determina se la routine della finestra corrente elabora un messaggio inviato da un altro thread (nello stesso processo o in un processo diverso) tramite una chiamata alla funzione SendMessage .
Per ottenere informazioni aggiuntive sul modo in cui è stato inviato il messaggio, usare la funzione InSendMessageEx .
InSendMessageEx Determina se la routine della finestra corrente elabora un messaggio inviato da un altro thread (nello stesso processo o in un processo diverso).
PeekMessage Invia messaggi inviati in arrivo, controlla la coda dei messaggi di thread per un messaggio pubblicato e recupera il messaggio (se presente).
PostMessage Invia un messaggio nella coda di messaggi associata al thread che ha creato la finestra specificata e restituisce senza attendere che il thread elabora il messaggio.
Per pubblicare un messaggio nella coda di messaggi associata a un thread, usare la funzione PostThreadMessage .
PostQuitMessage Indica al sistema che un thread ha effettuato una richiesta di termina (quit). Viene in genere usato in risposta a un messaggio di WM_DESTROY .
PostThreadMessage Invia un messaggio alla coda di messaggi del thread specificato. Restituisce senza attendere che il thread elabora il messaggio.
RegisterWindowMessage Definisce un nuovo messaggio di finestra che è garantito essere univoco in tutto il sistema. Il valore del messaggio può essere usato durante l'invio o la pubblicazione di messaggi.
ReplyMessage Risponde a un messaggio inviato tramite la funzione SendMessage senza restituire il controllo alla funzione che ha chiamato SendMessage.
SendAsyncProc Funzione callback definita dall'applicazione usata con la funzione SendMessageCallback . Il sistema passa il messaggio alla funzione di callback dopo aver passato il messaggio alla routine della finestra di destinazione. Il tipo SENDASYNCPROC definisce un puntatore a questa funzione di callback. SendAsyncProc è un segnaposto per il nome della funzione definita dall'applicazione.
SendMessage Invia il messaggio specificato a una finestra o a una finestra. La funzione SendMessage chiama la routine della finestra per la finestra specificata e non restituisce finché la routine della finestra non è stata elaborata.
Per inviare un messaggio e restituire immediatamente, usare la funzione SendMessageCallback o SendNotifyMessage . Per pubblicare un messaggio nella coda di messaggi di un thread e restituire immediatamente, usare la funzione PostMessage o PostThreadMessage .
SendMessageCallback Invia il messaggio specificato a una finestra o a una finestra. Chiama la routine della finestra per la finestra specificata e restituisce immediatamente. Dopo che la routine della finestra elabora il messaggio, il sistema chiama la funzione di callback specificata, passando il risultato dell'elaborazione del messaggio e un valore definito dall'applicazione alla funzione di callback.
SendMessageTimeout Invia il messaggio specificato a una di più finestre.
SendNotifyMessage Invia il messaggio specificato a una finestra o a una finestra. Se la finestra è stata creata dal thread chiamante, SendNotifyMessage chiama la procedura della finestra per la finestra e non restituisce fino a quando la routine della finestra non ha elaborato il messaggio. Se la finestra è stata creata da un thread diverso, SendNotifyMessage passa il messaggio alla routine della finestra e restituisce immediatamente; non attende che la procedura della finestra finisca l'elaborazione del messaggio.
SetMessageExtraInfo Imposta le informazioni di messaggio aggiuntive per il thread corrente. Le informazioni sui messaggi aggiuntivi sono un valore definito dall'applicazione o dal driver associato alla coda di messaggi del thread corrente. Un'applicazione può usare la funzione GetMessageExtraInfo per recuperare le informazioni aggiuntive del messaggio di un thread.
TranslateMessage Converte i messaggi di chiave virtuale in messaggi di carattere. I messaggi di carattere vengono pubblicati nella coda dei messaggi del thread chiamante, per essere letti la prossima volta che il thread chiama la funzione GetMessage o PeekMessage .
WaitMessage Restituisce il controllo ad altri thread quando un thread non contiene altri messaggi nella coda dei messaggi. La funzione WaitMessage sospende il thread e non restituisce finché non viene inserito un nuovo messaggio nella coda del messaggio del thread.

Costanti dei messaggi

Nome Descrizione
OCM__BASE Usato per definire i messaggi privati da usare da classi di finestre private.
WM_APP Usato per definire i messaggi privati.
WM_USER Usato per definire i messaggi privati da usare da classi di finestre private.

Strutture dei messaggi

Nome Descrizione
BSMINFO Contiene informazioni su una finestra che ha negato una richiesta da BroadcastSystemMessageEx.
MSG Contiene informazioni sul messaggio dalla coda di messaggi di un thread.