mensagem WM_SYSKEYUP
Postado na janela com o foco do teclado quando o usuário libera uma tecla que foi pressionada enquanto a tecla ALT era mantida pressionada. Ele também ocorre quando nenhuma janela tem o foco do teclado no momento; nesse caso, a mensagem WM_SYSKEYUP é 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 .
Uma janela recebe essa mensagem por meio da função WindowProc.
#define WM_SYSKEYUP 0x0105
Parâmetros
-
wParam
-
O código de chave virtual da chave que está sendo liberada. 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. A contagem de repetição é sempre uma para uma mensagem de WM_SYSKEYUP . 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 chave estendida; caso contrário, é zero. 25-28 Reservados; não use. 29 O código de contexto. O valor será 1 se a chave ALT estiver inativa enquanto a chave for liberada; será zero se a mensagem WM_SYSKEYUP for postada na janela ativa porque nenhuma janela tem o foco do teclado. 30 O estado da chave anterior. O valor é sempre 1 para uma mensagem de WM_SYSKEYUP . 31 O estado de transição. O valor é sempre 1 para uma mensagem de WM_SYSKEYUP . Para obter mais detalhes, consulte Sinalizadores de mensagem de pressionamento de tecla.
Retornar valor
Um aplicativo deverá retornar zero se processar essa mensagem.
Comentários
A função DefWindowProc envia uma mensagem WM_SYSCOMMAND para a janela de nível superior se a chave F10 ou a chave ALT tiver sido liberada. O parâmetro wParam da mensagem é definido como SC_KEYMENU.
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.
Para teclados avançados de 101 e 102 teclas, as teclas estendidas 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 .
Para não-EUA teclados avançados de 102 teclas, a tecla ALT direita é tratada como uma tecla CTRL+ALT. A tabela a seguir mostra a sequência de mensagens que resultam quando o usuário pressiona e libera essa tecla.
Mensagem | Código de chave virtual |
---|---|
WM_KEYDOWN | VK_CONTROL |
WM_KEYDOWN | VK_MENU |
WM_KEYUP | VK_CONTROL |
WM_SYSKEYUP | VK_MENU |
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 |
|