WM_SYSKEYDOWN mensagem

Postado na janela com o foco do teclado quando o usuário pressiona a tecla F10 (que ativa a barra de menus) ou mantém a tecla ALT pressionada e pressiona outra tecla. Ele também ocorre quando nenhuma janela tem o foco do teclado no momento; nesse caso, a mensagem WM_SYSKEYDOWN é enviada para a janela ativa. A janela que recebe a mensagem pode distinguir entre esses dois contextos verificando o código de contexto no parâmetro lParam .

#define WM_SYSKEYDOWN                   0x0104

Parâmetros

wParam

O código de tecla virtual da tecla que está sendo pressionada. Confira Códigos de chave virtual.

lParam

A contagem de repetição, o código de verificação, o sinalizador de chave estendida, o código de contexto, o sinalizador de estado-chave anterior e o sinalizador de estado de transição, conforme mostrado na tabela a seguir.

Bits Significado
0-15 A contagem de repetição para a mensagem atual. O valor é o número de vezes que o pressionamento de tecla é repetido automaticamente como resultado do usuário que mantém a tecla pressionada. Se o pressionamento de teclas for mantido por tempo suficiente, várias mensagens serão enviadas. No entanto, a contagem de repetição não é cumulativa.
16-23 O código de verificação. O valor depende do OEM.
24 Indica se a tecla é uma tecla estendida, como as teclas ALT e CTRL à direita que aparecem em um teclado avançado de 101 ou 102 teclas. O valor será 1 se for uma tecla estendida; caso contrário, é 0.
25-28 Reservados; não use.
29 O código de contexto. O valor será 1 se a tecla ALT estiver inativa enquanto a tecla for pressionada; será 0 se a mensagem WM_SYSKEYDOWN for postada na janela ativa porque nenhuma janela tem o foco do teclado.
30 O estado da chave anterior. O valor será 1 se a tecla estiver pressionada antes do envio da mensagem, ou 0 se a tecla não estiver pressionada.
31 O estado de transição. O valor é sempre 0 para uma mensagem WM_SYSKEYDOWN .

Para obter mais detalhes, consulte Sinalizadores de mensagem de pressionamento de tecla.

Valor retornado

Um aplicativo deverá retornar zero se processar essa mensagem.

Comentários

A função DefWindowProc examina a chave especificada e gera uma mensagem WM_SYSCOMMAND se a chave for TAB ou ENTER.

Quando o código de contexto for zero, a mensagem poderá ser passada para a função TranslateAccelerator , que tratará como se fosse uma mensagem de chave normal em vez de uma mensagem de chave de caractere. Isso permite que as teclas de acelerador sejam usadas com a janela ativa mesmo que a janela ativa não tenha o foco do teclado.

Devido à repetição automática, mais de um WM_SYSKEYDOWN mensagem pode ocorrer antes que uma mensagem de WM_SYSKEYUP seja enviada. O estado da chave anterior (bit 30) pode ser usado para determinar se a mensagem WM_SYSKEYDOWN indica a primeira transição para baixo ou uma transição repetida para baixo.

Para teclados avançados de 101 e 102 teclas, as teclas aprimoradas são as teclas ALT e CTRL direitas na seção main do teclado; as teclas INS, DEL, HOME, END, PAGE UP, PAGE DOWN e seta nos clusters à esquerda do teclado numérico; e as teclas DIVIDE (/) e ENTER no teclado numérico. Outros teclados podem dar suporte ao bit de tecla estendida no parâmetro lParam .

Essa mensagem também é enviada sempre que o usuário pressiona a tecla F10 sem a tecla ALT.

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows 2000 Server [somente aplicativos da área de trabalho]
Cabeçalho
Winuser.h (inclua Windows.h)

Confira também