Función PeekMessageW (winuser.h)
Envía mensajes entrantes no puestos en cola, comprueba la cola de mensajes de subprocesos de un mensaje publicado y recupera el mensaje (si existe).
Sintaxis
BOOL PeekMessageW(
[out] LPMSG lpMsg,
[in, optional] HWND hWnd,
[in] UINT wMsgFilterMin,
[in] UINT wMsgFilterMax,
[in] UINT wRemoveMsg
);
Parámetros
[out] lpMsg
Tipo: de LPMSG de
Puntero a una estructura de MSG
[in, optional] hWnd
Tipo: HWND
Identificador de la ventana cuyos mensajes se van a recuperar. La ventana debe pertenecer al subproceso actual.
Si
Si
[in] wMsgFilterMin
Tipo: UINT
Valor del primer mensaje del intervalo de mensajes que se van a examinar. Use WM_KEYFIRST (0x0100) para especificar el primer mensaje de teclado o WM_MOUSEFIRST (0x0200) para especificar el primer mensaje del mouse.
Si wMsgFilterMin y wMsgFilterMax son cero, PeekMessage devuelve todos los mensajes disponibles (es decir, no se realiza ningún filtrado de intervalo).
[in] wMsgFilterMax
Tipo: UINT
Valor del último mensaje del intervalo de mensajes que se van a examinar. Use WM_KEYLAST para especificar el último mensaje de teclado o WM_MOUSELAST para especificar el último mensaje del mouse.
Si wMsgFilterMin y wMsgFilterMax son cero, PeekMessage devuelve todos los mensajes disponibles (es decir, no se realiza ningún filtrado de intervalo).
[in] wRemoveMsg
Tipo: UINT
Especifica cómo se van a controlar los mensajes. Este parámetro puede ser uno o varios de los siguientes valores.
Valor | Significado |
---|---|
|
Los mensajes no se quitan de la cola después del procesamiento por PeekMessage. |
|
Los mensajes se quitan de la cola después del procesamiento PeekMessage. |
|
Impide que el sistema libere cualquier subproceso que espere a que el autor de la llamada vaya inactivo (consulte WaitForInputIdle).
Combine este valor con PM_NOREMOVE o PM_REMOVE. |
De forma predeterminada, se procesan todos los tipos de mensajes. Para especificar que solo se debe procesar un mensaje determinado, especifique uno o varios de los valores siguientes.
Valor devuelto
Tipo: BOOL de
Si hay un mensaje disponible, el valor devuelto es distinto de cero.
Si no hay ningún mensaje disponible, el valor devuelto es cero.
Observaciones
Tenga en cuenta que PeekMessage siempre recupera WM_QUIT mensajes, independientemente de los valores que especifique para wMsgFilterMin y wMsgFilterMax.
Durante esta llamada, el sistema envía (DispatchMessage) pending, nonqueued messages, that is, messages sent to windows owned by the calling thread using the SendMessage, SendMessageCallback, SendMessageTimeout, or SendNotifyMessage function. A continuación, se recupera el primer mensaje en cola que coincide con el filtro especificado. El sistema también puede procesar eventos internos. Si no se especifica ningún filtro, los mensajes se procesan en el orden siguiente:
- Mensajes enviados
- Mensajes publicados
- Mensajes de entrada (hardware) y eventos internos del sistema
- Mensajes enviados (de nuevo)
- mensajes de WM_PAINT
- mensajes de WM_TIMER
Normalmente, la función peekMessage
Si una ventana de nivel superior deja de responder a los mensajes durante más de varios segundos, el sistema considera que la ventana no responde y la reemplaza por una ventana fantasma que tiene el mismo orden z, ubicación, tamaño y atributos visuales. Esto permite al usuario moverlo, cambiar su tamaño o incluso cerrar la aplicación. Sin embargo, estas son las únicas acciones disponibles porque la aplicación realmente no responde. Cuando se depura una aplicación, el sistema no genera una ventana fantasma.
Virtualización de PPP de
Esta API no participa en la virtualización de PPP. La salida está en el modo de la ventana que el mensaje tiene como destino. No se tiene en cuenta el subproceso que realiza la llamada.Ejemplos
Para obtener un ejemplo, vea Examinar una cola de mensajes.
Nota
El encabezado winuser.h define PeekMessage como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows 2000 Professional [solo aplicaciones de escritorio] |
servidor mínimo admitido | Windows 2000 Server [solo aplicaciones de escritorio] |
de la plataforma de destino de |
Windows |
encabezado de |
winuser.h (incluya Windows.h) |
biblioteca de |
User32.lib |
DLL de |
User32.dll |
conjunto de API de |
ext-ms-win-ntuser-message-l1-1-0 (introducido en Windows 8) |
Consulte también
conceptual de
IsChild de
otros recursos
de referencia de