La funzione GetMessage recupera un messaggio dalla coda di messaggi del thread chiamante e lo inserisce nella struttura specificata. Questa funzione può recuperare entrambi i messaggi associati a una finestra specificata e i messaggi del thread inviato via il PostThreadMessage funzione. La funzione recupera i messaggi che si trovano all'interno di un intervallo di valori messaggio specificato. GetMessage non recupera i messaggi per windows che appartengono ad altri thread o applicazioni.
(BOOL GetMessage MSG msg, / / indirizzo della struttura con messaggioHWNDhWnd, / / handle di finestraUINTwMsgFilterMin, / / primo messaggioUINTwMsgFilterMax / / ultimo messaggio);
| Valore | Significato |
|---|---|
| NULL | GetMessage recupera i messaggi per qualsiasi finestra che appartiene al thread chiamante e filo messaggi inviati al thread chiamante tramite PostThreadMessage. |
Se la funzione recupera un messaggio diverso da WM_QUIT, il valore restituito è diverso da zero.
Se la funzione recupera il messaggio WM_QUIT, il valore restituito è zero.
Se c'è un errore, il valore restituito è -1. Ad esempio, la funzione ha esito negativo se hWnd è un handle non valido o msg è un puntatore non valido. Per ottenere informazioni di errore estese, chiamare GetLastError.
Un'applicazione in genere utilizza il valore restituito per determinare se terminare il ciclo di messaggi principale e uscire dal programma.
La funzione GetMessage recupera solo i messaggi associati alla finestra identificata dal parametro hWnd o uno dei suoi figli, come specificato dalla funzione IsChild ed entro l'intervallo di valori di messaggio dato dai parametri wMsgFilterMin e wMsgFilterMax . Se hWnd è NULL, GetMessage recupera i messaggi per qualsiasi finestra che appartiene al thread chiamante e filo messaggi inviati al thread chiamante tramite PostThreadMessage. GetMessage non recupera i messaggi per windows che appartengono ad altri thread né per thread diversi thread chiamante, anche se hWnd non è NULL. Messaggi di filo, inviati dalla funzione PostThreadMessage , che il messaggio hWnd valore null. Se wMsgFilterMin e wMsgFilterMax sono entrambi zero, GetMessage restituisce tutti i messaggi disponibili (cioè, nessun filtro gamma viene eseguito).
Le costanti WM_KEYFIRST e WM_KEYLAST possono essere utilizzate come valori di filtro per recuperare tutti i messaggi relativi all'input da tastiera; le costanti WM_MOUSEFIRST e WM_MOUSELAST possono essere utilizzate per recuperare tutti i messaggi del mouse. Se i parametri wMsgFilterMin e wMsgFilterMax sono entrambi zero, la funzione GetMessage restituisce tutti i messaggi disponibili (che è, senza eseguire ogni filtraggio).
GetMessage non rimuove messaggi WM_PAINT dalla coda. I messaggi restano nella coda fino all'elaborazione di.
Notare che il valore restituito della funzione può essere diverso da zero, zero o -1. Così, si dovrebbe evitare di codice di questo tipo:
mentre (GetMessage (msg, hWnd, 0, 0))
La possibilità di un valore restituito-1 significa che tale codice può portare a errori di applicazione fatale.
nbsp; Windows &NT: richiede 3.1 o versione successiva.
Windows:Richiede Windows 95 o versioni successive.
Windows CE:Richiede la versione 1.0 o successiva.
Intestazione:Dichiarati in winuser.
Importare librerie:Utilizzare user32.lib.
Unicode:Implementato come versioni Unicode e ANSI su Windows NT.
Messaggi e panoramica delle code di messaggi, messaggio e funzioni di coda dei messaggi, IsChild, MSG, PeekMessage, PostMessage, PostThreadMessage, WaitMessage
Rimedio: Inserire il CD-ROM CD di MSDN Library.