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 |
|
Confira também
-
Referência
-
Outros recursos