Mensagem WM_VKEYTOITEM

Enviado por uma caixa de listagem com o estilo LBS_WANTKEYBOARDINPUT ao seu proprietário em resposta a uma mensagem WM_KEYDOWN.

WM_VKEYTOITEM

    WPARAM wParam;
    LPARAM lParam; 

Parâmetros

wParam

O LOWORD especifica o código de tecla virtual que o usuário pressionou. O HIWORD especifica a posição atual do sinal de interpolação.

lParam

Identificador para a caixa de listagem.

Valor retornado

O valor retornado especifica a ação executada pelo aplicativo em resposta à mensagem. Um valor retornado de -2 indica que o aplicativo lidou com todos os aspectos da seleção do item e não deseja mais nenhuma ação da caixa de listagem. (Consulte as Observações.) Um valor retornado de -1 indica que a caixa de listagem deve executar a ação padrão em resposta ao pressionamento de tecla. Um valor retornado igual a 0 ou superior especifica o índice de um item na caixa de listagem e indica que a caixa de listagem deve executar a ação padrão para o pressionamento de tecla no item especificado.

Comentários

Um valor retornado de -2 é válido somente para teclas que não são convertidas em caracteres pelo controle da caixa de listagem. Se a mensagem WM_KEYDOWN for convertida em uma mensagem WM_CHAR e o aplicativo processar a mensagem WM_VKEYTOITEM gerada como resultado do pressionamento de tecla, a caixa de listagem ignorará o valor retornado e fará o processamento padrão para esse caractere). Mensagens WM_KEYDOWN geradas por teclas como VK_UP, VK_DOWN, VK_NEXT e VK_PREVIOUS não são convertidas em mensagens WM_CHAR. Nesses casos, interceptar a mensagem WM_VKEYTOITEM e retornar -2 impede que a caixa de listagem faça o processamento padrão para essa tecla.

Para interceptar teclas que geram uma mensagem de caractere e fazer processamento especial, o aplicativo deve subclassificar a caixa de listagem, interceptar as mensagens WM_KEYDOWN e WM_CHAR e processar as mensagens adequadamente no procedimento de subclassificação.

As observações anteriores se aplicam a caixas de listagem regulares criadas com o estilo LBS_WANTKEYBOARDINPUT. Se a caixa de listagem for desenhada pelo proprietário, o aplicativo deverá processar a mensagem WM_CHARTOITEM.

A função DefWindowProc retorna -1.

Se um procedimento de caixa de diálogo manipula essa mensagem, ele deve converter o valor retornado desejado em um BOOL e retornar o valor diretamente. O valor DWL_MSGRESULT definido pela função SetWindowLong é ignorado.

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows Server 2003 [somente aplicativos da área de trabalho]
Cabeçalho
Winuser.h (inclui Windows.h)

Confira também

Referência

WM_CHARTOITEM

Outros recursos

HIWORD

LOWORD

WM_KEYDOWN