WinApi: Mensajes: Teclado

Mensaje

Descripción

WM_KEYDOWN

Es enviada a la ventana que tiene el foco. Solo si no es la tecla Alt o esta no está pulsada.

La tecla es recibida como un virtual key en el parámetro wParam. Debido a la auto repetición se pueden recibir varios keydown seguidos antes de recibir el keyup.

Si es un carácter entonces window colocara en la cola de mensajes un WM_CHAR o un WM_DEADCHAR

WM_SYSKEYDOWN

Es enviado cuando se pulsa la tecla Alt u otra estando Alt pulsada. Si no hay un control

con foco entonces la ventana activa recibirá todas las teclas como WM_SYSKEYDOWM

aunque la tecla ALT no esté pulsada. Si es un carácter colocara en la cola de mensajes un WM_SYSCHAR o WM_SYSDEADCHAR

WM_KEYUP

Es enviado cuando se suelta la tecla si no es la tecla Alt o esta pulsada. La tecla viene en wParam como un virtual key.

WM_SYSKEYUP

Es enviado cuando se suelta la tecla Alt o cualquier otra estando Alt pulsada. Tambien cuando no hay un control activo la ventana activa lo recibirá aunque no esté pulsada la tecla Alt.

WM_CHAR

Es mandada al control con foco cuando la tecla genera un carácter. El mensaje es creado por la función TranslateMessage del bucle de mensajes. También recibe el estado de la tecla control y Shift y cualquier carácter Dead pendiente (por ejemplo acentos).

El carácter se recibe en wParam.

WM_SYSCHAR

Es mandada al control con foco cuando la tecla genera un carácter y Alt esta pulsada o

Cuando la ventana no tiene ningún control con foco.

El mensaje es creado por la función TranslateMessage del bucle de mensajes.

También recibe el estado de la Tecla control y Shift y cualquier carácter Dead pendiente

(por ejemplo acentos).

El carácter se recibe en wParam.

WM_DEADCHAR

Es mandada al control con foco cuando se pulsa una tecla que genera un acento.

El mensaje es creado por la función TranslateMessage del bucle de mensajes.

Si el acento es válido el próximo mensaje será un WM_CHAR con el carácter acentuado.

Si no es válido será mandado un WM_CHAR con el acento solo y otro con el carácter.

WM_SYSDEADCHAR

Lo mismo que el anterior pero si esta pulsada la tecla Alt o la ventana activa no tiene un control activo. Con una excepción , si la tecla Alt se suelta antes de pulsar el carácter que va acentuado entonces se genera un WM_SYSCHAR para el acento y otro para el carácter sin acentuar.

WM_APPCOMMAND

Este mensaje se comporta distinto a los anteriores en el sentido que no es enviado al bucle de mensajes de la aplicación. Es enviado por la función DefWindowProc cuando se pulsan determinadas teclas como controles de sonido del teclado o botones extra de un ratón. Si la ventana destino no procesa el mensaje será enviado hacia el padre y si no hasta la ventana propietaria.

0 comentarios: