mensaje de WM_VKEYTOITEM

Enviado por un cuadro de lista con el estilo LBS_WANTKEYBOARDINPUT a su propietario en respuesta a un mensaje de WM_KEYDOWN.

WM_VKEYTOITEM

    WPARAM wParam;
    LPARAM lParam; 

Parámetros

wParam

LOWORD especifica el código de clave virtual de la tecla que ha presionado el usuario. HIWORD especifica la posición actual del símbolo de intercalación.

lParam

Identificador del cuadro de lista.

Valor devuelto

El valor devuelto especifica la acción que la aplicación realizó en respuesta al mensaje. Un valor devuelto de -2 indica que la aplicación ha controlado todos los aspectos de la selección del elemento y no requiere ninguna acción adicional por parte del cuadro de lista. (vea la sección Comentarios.) Un valor devuelto de -1 indica que el cuadro de lista debe realizar la acción predeterminada en respuesta a la pulsación de tecla. Un valor devuelto de 0 o superior especifica el índice de un elemento en el cuadro de lista e indica que el cuadro de lista debe realizar la acción predeterminada para la pulsación de tecla en el elemento especificado.

Comentarios

Un valor devuelto de -2 solo es válido para las claves que no se traducen en caracteres por el control de cuadro de lista. Si el mensaje de WM_KEYDOWN se traduce en un mensaje de WM_CHAR y la aplicación procesa el mensaje de WM_VKEYTOITEM generado como resultado de la pulsación de teclas, el cuadro de lista omite el valor devuelto y realiza el procesamiento predeterminado para ese carácter). WM_KEYDOWN mensajes generados por claves como VK_UP, VK_DOWN, VK_NEXT y VK_PREVIOUS no se traducen a mensajes de WM_CHAR. En tales casos, la captura del mensaje WM_VKEYTOITEM y la devolución de -2 impide que el cuadro de lista realice el procesamiento predeterminado para esa clave.

Para interceptar las claves que generan un mensaje char y realizan un procesamiento especial, la aplicación debe subclase el cuadro de lista, interceptar los mensajes WM_KEYDOWN y WM_CHAR, y procesar los mensajes adecuadamente en el procedimiento de subclase.

Los comentarios anteriores se aplican a los cuadros de lista normales que se crean con el estilo LBS_WANTKEYBOARDINPUT. Si el cuadro de lista está dibujado por el propietario, la aplicación debe procesar el mensaje WM_CHARTOITEM.

La función DefWindowProc devuelve -1.

Si un procedimiento de cuadro de diálogo controla este mensaje, debe convertir el valor devuelto deseado en una BOOL y devolver el valor directamente. Se omite el valor de DWL_MSGRESULT establecido por la función SetWindowLong.

Requisitos

Requisito Valor
Cliente mínimo compatible
Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows Server 2003 [solo aplicaciones de escritorio]
Encabezado
Winuser.h (incluya Windows.h)

Consulte también

Referencia

WM_CHARTOITEM

Otros recursos

HIWORD

LOWORD

WM_KEYDOWN