Função TranslateAcceleratorA (winuser.h)
Processa chaves de acelerador para comandos de menu. A função converte uma mensagem de WM_KEYDOWN ou WM_SYSKEYDOWN para uma mensagem de WM_COMMAND ou WM_SYSCOMMAND (se houver uma entrada para a chave na tabela de acelerador especificada) e envia a mensagem WM_COMMAND ou WM_SYSCOMMAND diretamente para o procedimento de janela especificado. TranslateAccelerator não retornará até que o procedimento de janela tenha processado a mensagem.
Sintaxe
int TranslateAcceleratorA(
[in] HWND hWnd,
[in] HACCEL hAccTable,
[in] LPMSG lpMsg
);
Parâmetros
[in] hWnd
Tipo: HWND
Um identificador para a janela cujas mensagens devem ser traduzidas.
[in] hAccTable
Tipo: HACCEL
Um identificador para a tabela de aceleradores. A tabela de acelerador deve ter sido carregada por uma chamada para a função
[in] lpMsg
Tipo: LPMSG
Um ponteiro para uma estrutura de do
Valor de retorno
Tipo: int
Se a função for bem-sucedida, o valor retornado não será zero.
Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.
Observações
Para diferenciar a mensagem enviada por mensagens enviadas por menus ou controles, a palavra de alta ordem do parâmetro wParam
As combinações de teclas de acelerador usadas para selecionar itens na janela menu são convertidas em mensagens WM_SYSCOMMAND; todas as outras combinações de teclas de acelerador são convertidas em mensagens WM_COMMAND.
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 acelerador corresponder a um item de menu, o aplicativo será enviado WM_INITMENU e WM_INITMENUPOPUP mensagens, como se o usuário estivesse tentando exibir o menu. No entanto, essas mensagens não serão enviadas se alguma das seguintes condições existir:
- A janela está desabilitada.
- A combinação de teclas de acelerador não corresponde a um item na janela menu e a janela é minimizada.
- Uma captura de mouse está em vigor. Para obter informações sobre a captura do mouse, consulte a função SetCapture.
Se ocorrer um pressionamento de teclas de acelerador que corresponda a um item de menu quando a janela que possui o menu for minimizada, TranslateAccelerator não enviará uma mensagem de WM_COMMAND. No entanto, se ocorrer um pressionamento de teclas de acelerador que não corresponda a nenhum dos itens no menu da janela ou na janela menu, a função enviará uma mensagem WM_COMMAND, mesmo que a janela seja minimizada.
Exemplos
Para obter um exemplo, consulte Criando aceleradores para atributos de fonte.
Nota
O cabeçalho winuser.h define TranslateAccelerator como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows 2000 Professional [somente aplicativos da área de trabalho] |
servidor com suporte mínimo | Windows 2000 Server [somente aplicativos da área de trabalho] |
da Plataforma de Destino |
Windows |
cabeçalho | winuser.h (inclua Windows.h) |
biblioteca | User32.lib |
de DLL |
User32.dll |
Consulte também
Conceitual
de Aceleradores de Teclado
de referência de