Funzione PeekMessageW (winuser.h)
Invia messaggi non accodati in arrivo, controlla la coda di messaggi del thread per un messaggio pubblicato e recupera il messaggio (se presente).
Sintassi
BOOL PeekMessageW(
[out] LPMSG lpMsg,
[in, optional] HWND hWnd,
[in] UINT wMsgFilterMin,
[in] UINT wMsgFilterMax,
[in] UINT wRemoveMsg
);
Parametri
[out] lpMsg
Tipo: LPMSG
Puntatore a una struttura MSG che riceve informazioni sui messaggi.
[in, optional] hWnd
Tipo: HWND
Handle per la finestra di cui recuperare i messaggi. La finestra deve appartenere al thread corrente.
Se
Se
[in] wMsgFilterMin
Tipo: UINT
Valore del primo messaggio nell'intervallo di messaggi da esaminare. Utilizzare WM_KEYFIRST (0x0100) per specificare il primo messaggio della tastiera o WM_MOUSEFIRST (0x0200) per specificare il primo messaggio del mouse.
Se wMsgFilterMin e wMsgFilterMax sono entrambi zero, PeekMessage restituisce tutti i messaggi disponibili, ovvero non viene eseguito alcun filtro di intervallo.
[in] wMsgFilterMax
Tipo: UINT
Valore dell'ultimo messaggio nell'intervallo di messaggi da esaminare. Utilizzare WM_KEYLAST per specificare l'ultimo messaggio della tastiera o WM_MOUSELAST per specificare l'ultimo messaggio del mouse.
Se wMsgFilterMin e wMsgFilterMax sono entrambi zero, PeekMessage restituisce tutti i messaggi disponibili, ovvero non viene eseguito alcun filtro di intervallo.
[in] wRemoveMsg
Tipo: UINT
Specifica la modalità di gestione dei messaggi. Questo parametro può essere uno o più dei valori seguenti.
Valore | Significato |
---|---|
|
I messaggi non vengono rimossi dalla coda dopo l'elaborazione PeekMessage. |
|
I messaggi vengono rimossi dalla coda dopo l'elaborazione PeekMessage. |
|
Impedisce al sistema di rilasciare qualsiasi thread in attesa che il chiamante vada inattivo (vedere WaitForInputIdle).
Combinare questo valore con PM_NOREMOVE o PM_REMOVE. |
Per impostazione predefinita, vengono elaborati tutti i tipi di messaggio. Per specificare che deve essere elaborato solo un determinato messaggio, specificare uno o più dei valori seguenti.
Valore restituito
Tipo: bool
Se è disponibile un messaggio, il valore restituito è diverso da zero.
Se non sono disponibili messaggi, il valore restituito è zero.
Osservazioni
PeekMessage recupera i messaggi associati alla finestra identificata dal parametro hWnd o da uno dei relativi elementi figlio come specificato dalla funzione IsChild e all'interno dell'intervallo di valori dei messaggi specificati dal wMsgFilterMin e wMsgFilterMax parametri. Si noti che un'applicazione può usare solo la parola bassa nei wMsgFilterMin e wMsgFilterMax parametri; la parola alta è riservata al sistema.
Si noti che PeekMessage recupera sempre WM_QUIT messaggi, indipendentemente dai valori specificati per wMsgFilterMin e wMsgFilterMax.
Durante questa chiamata, il sistema invia (
- Messaggi inviati
- Messaggi inviati
- Messaggi di input (hardware) ed eventi interni del sistema
- Messaggi inviati (di nuovo)
- WM_PAINT messaggi
- WM_TIMER messaggi
La funzione peekMessage
Se una finestra di primo livello smette di rispondere ai messaggi per più di diversi secondi, il sistema considera che la finestra non risponde e la sostituisce con una finestra fantasma con gli stessi attributi di ordine z, posizione, dimensione e oggetto visivo. Ciò consente all'utente di spostarlo, ridimensionarlo o persino chiudere l'applicazione. Tuttavia, queste sono le uniche azioni disponibili perché l'applicazione in realtà non risponde. Quando un'applicazione viene sottoposta a debug, il sistema non genera una finestra fantasma.
Virtualizzazione DPI
Questa API non partecipa alla virtualizzazione DPI. L'output è in modalità della finestra di destinazione del messaggio. Il thread chiamante non viene preso in considerazione.Esempi
Per un esempio, vedere Esame di una coda di messaggi.
Nota
L'intestazione winuser.h definisce PeekMessage come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows 2000 Professional [solo app desktop] |
server minimo supportato | Windows 2000 Server [solo app desktop] |
piattaforma di destinazione | Finestre |
intestazione |
winuser.h (include Windows.h) |
libreria |
User32.lib |
dll | User32.dll |
set di API | ext-ms-win-ntuser-message-l1-1-0 (introdotto in Windows 8) |
Vedere anche
concettuale
altre risorse
riferimento