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);
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.
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.
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.
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