TranslateAccelerator

O TranslateAccelerator função processa teclas de aceleração para os comandos de menu. A função converte um WM_KEYDOWN ou WM_SYSKEYDOWN mensagem para uma mensagem de WM_COMMAND ou WM_SYSCOMMAND (se não houver uma entrada para a chave na tabela de aceleração especificado) e, em seguida, envia o WM_COMMAND ou WM_SYSCOMMAND mensagem diretamente para o apropriado procedimento janela. TranslateAccelerator não retorna até que o procedimento de janela processou a mensagem.

 int (TranslateAccelerator HWND  hWnd, / / manipular a janela de destinoHACCELhAccTable, / / identificador para o tabela de teclas aceleradorasLPMSGlpMsg / / endereço da estrutura com mensagem);
 

Parâmetros

hWnd
Identificador para a janela cujas mensagens estão a ser traduzido.
hAccTable
Identificador para um tabela de aceleração. Tabela de teclas aceleradoras foram carregado por um chamar para a função de LoadAccelerators ou criado por uma chamada para o CreateAcceleratorTable função.
lpMsg
Ponteiro para um MSG estrutura que contém informações de mensagem recuperada da fila de mensagens do segmento de chamado usando o GetMessage ou PeekMessage função.

Retornar valores

Se a função for bem-sucedido, o valor de retorno é diferente de zero.

Se a função falhar, o valor de retorno é zero. Para informações de erro estendidas get, chamar GetLastError.

Observações

Para diferenciar a mensagem de que esta função envia mensagens enviadas por menus ou controles, o alto palavra de ordem wParam parâmetro de WM_COMMAND ou WM_SYSCOMMAND mensagem contém o valor 1.

Combinações de teclas acelerador usadas para selecionar itens do menu janela são convertidas em mensagens WM_SYSCOMMAND; todas as outras combinações de teclas de acelerador são traduzidas em WM_COMMAND mensagens.

Quando TranslateAccelerator retorna um valor diferente de zero e a mensagem é traduzida, o aplicativo não deve usar a função TranslateMessage para processar a mensagem novamente.

Um acelerador não precisa corresponder a um comando de menu.

Se o comando de acelerador corresponde a um item de menu, o pedido é enviado mensagens WM_INITMENU e WM_INITMENUPOPUP , como se o usuário estava tentando exibir o menu. No entanto, essas mensagens não são enviadas se qualquer uma das seguintes condições existir:

Se a janela especificada for a janela ativa e nenhuma janela tem o foco do teclado (que é geralmente o caso se a janela está minimizada), TranslateAccelerator traduz WM_SYSKEYUP e WM_SYSKEYDOWN mensagens em vez de WM_KEYUP e WM_KEYDOWN mensagens.

Se um pressionamento de tecla acelerador ocorre que corresponde a um item de menu quando a janela que possui o menu é minimizada, TranslateAccelerator não envia uma mensagem WM_COMMAND. No entanto, se um pressionamento de tecla acelerador ocorre que não corresponde a qualquer um dos itens no menu da janela ou no menu janela , a função envia uma mensagem WM_COMMAND, mesmo se a janela está minimizada.

Windows CE: Todas as mensagens de chave do acelerador são traduzidas em WM_COMMAND mensagens; Windows CE não oferece suporte a mensagem WM_SYSCOMMAND.

QuickInfo

nbsp; Windows &NT: requer a versão 3.1 ou posterior.
Windows:Requer o Windows 95 ou posterior.
Windows CE:Requer versão 1.0 ou posterior.
Cabeçalho:Declarado em WinUser. h.
Biblioteca de importação:Use user32.lib.
Unicode:Implementado como versões Unicode e ANSI no Windows NT.

Ver também

Visão geral de aceleradores de teclado, funções de Accelerator do teclado, CreateAcceleratorTable, GetMessage, LoadAccelerators, MSG, PeekMessage, SetCapture, TranslateMessage, WM_COMMAND, WM_INITMENU, WM_INITMENUPOPUP, WM_KEYDOWN, WM_SYSKEYDOWN, WM_SYSCOMMAND

Index