Compartilhar via


TranslateAccelerator

Windows Mobile SupportedWindows Embedded CE Supported

9/9/2008

Essa função processa teclas acelerador para comandos menu. TranslateAccelerator Converte um WM_KEYDOWN Ou WM_SYSKEYDOWN mensagem para um WM_COMMAND mensagem e, em seguida, envia a mensagem WM_COMMAND diretamente para o apropriado procedimento janela. TranslateAccelerator Não retorna até que a janela procedimento tenha processado a mensagem.

Syntax

int TranslateAccelerator(
  HWND hWnd, 
  HACCEL hAccTable, 
  LPMSG lpMsg 
);

Parameters

  • hWnd
    Identificador para a janela cujas mensagens devem ser convertidos.
  • hAccTable
    Identificador para um tabela de aceleração. O tabela de aceleração deve ter foram carregadas por um chamar para o LoadAccelerators função ou criado por um chamar para o CreateAcceleratorTable função.
  • lpMsg
    Ponteiro longo para um MSG estrutura que contém informações mensagem recuperados do fila de mensagens do segmento de chamado usando o GetMessage Ou PeekMessage função.

Return Value

Nonzero indica sucesso. Zero indica falha. Para informações de erro estendidas get, chamar GetLastError.

Remarks

Todas as mensagens tecla aceleradora são convertidas em mensagens WM_COMMAND; Windows Embedded CE não suporte a mensagem WM_SYSCOMMAND.

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

Chave acelerador combinações utilizadas para selecionar itens a partir de janela menu são convertidos em mensagens WM_SYSCOMMAND; Todas as outras combinações tecla aceleradora são convertidas em mensagens WM_COMMAND.

Quando TranslateAccelerator Retorna um diferente de zero valor e a mensagem é convertida, o aplicativo não deve usar o TranslateMessage função ao processo a mensagem novamente.

Um acelerador necessário não corresponder a um comando de menu.

Se o comando acelerador corresponde a uma item de menu, o aplicativo será enviado uma WM_INITMENUPOPUP mensagem, como se o usuário estava tentando exibir o menu. No entanto, essas mensagens não são enviadas se qualquer uma das seguinte condições existirem:

  • A janela está desativada.
  • O item de menu é desativado.
  • Combinação de teclas o acelerador não corresponder a um item na janela menu e a janela está minimizada.
  • Uma captura mouse é aplicado. Para obter informações sobre captura mouse, consulte o SetCapture função.

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

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

Requirements

Header winuser.h
Library Accel.lib
Windows Embedded CE Windows CE 1.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also

Reference

CreateAcceleratorTable
GetMessage
LoadAccelerators
MSG
PeekMessage
SetCapture
TranslateMessage
WM_COMMAND
WM_INITMENUPOPUP
WM_KEYDOWN
WM_SYSKEYDOWN
Keyboard Functions