La funzione PeekMessage controlla una coda di messaggi del thread per un messaggio e inserisce il messaggio (se presente) in struttura specificata.
(BOOL PeekMessage MSG msg, / / puntatore alla struttura per messaggioHWNDhWnd, / / handle alla finestraUINTwMsgFilterMin, / / primo messaggioUINTwMsgFilterMax, / / ultimo messaggioUINTwRemoveMsg / / rimozione flags);
Valore | Significato |
---|---|
PM_NOREMOVE | I messaggi non vengono rimossi dalla coda dopo la trasformazione da PeekMessage. |
PM_REMOVE | I messaggi vengono rimossi dalla coda dopo la trasformazione da PeekMessage. |
Facoltativamente, è possibile combinare il valore PM_NOYIELD con PM_NOREMOVE o PM_REMOVE. Questo flag impedisce il sistema di rilasciare qualsiasi thread in attesa per il chiamante andare inattivo (vedere WaitForInputIdle).
Per impostazione predefinita, vengono elaborati tutti i tipi di messaggio. Per specificare che solo determinata messaggio deve essere elaborato, specificare uno o più dei seguenti valori:
Valore | Significato |
---|---|
PM_QS_INPUT | Windows NT 5.0 e Windows 98: Processi messaggi di mouse e tastiera. |
PM_QS_PAINT | Windows NT 5.0 e Windows 98: Elabora i messaggi di vernice. |
PM_QS_POSTMESSAGE | Windows NT 5.0 e Windows 98: Elaborare tutti i messaggi inviati, tra cui timer e tasti di scelta rapida. |
PM_QS_SENDMESSAGE | Windows NT 5.0 e Windows 98: Elaborare tutti inviati i messaggi. |
Se un messaggio è disponibile, il valore restituito è diverso da zero.
Se nessun messaggio è disponibile, il valore restituito è pari a zero.
A differenza della funzione GetMessage , la funzione PeekMessage non aspetta un messaggio per essere inserito nella coda prima di tornare.
PeekMessage 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, PeekMessage recupera i messaggi per qualsiasi finestra che appartiene alla chiamata al thread corrente. (PeekMessage non recupera i messaggi per windows che appartengono ad altri thread.) Se hWnd è – 1, PeekMessage restituisce solo i messaggi con un valore NULL, hWnd come pubblicato dalla funzione PostThreadMessage . Se wMsgFilterMin e wMsgFilterMax sono entrambi zero, PeekMessage 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 di tastiera; le costanti WM_MOUSEFIRST e WM_MOUSELAST possono essere utilizzate per recuperare tutti i messaggi del mouse.
La funzione PeekMessage normalmente non rimuove messaggi WM_PAINT dalla coda. Messaggi WM_PAINT restano nella coda fino a quando non vengono elaborati. Tuttavia, se un messaggio WM_PAINT ha un'area di aggiornamento null, PeekMessage rimuoverlo dalla coda.
Windows CE: Messaggi WM_PAINT con una regione di aggiornamento null non vengono rimossi dalla coda.
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, GetMessage, IsChild, MSG, WaitForInputIdle, WaitMessage
Rimedio: Inserire il CD-ROM CD di MSDN Library.