Entendendo eventos do teclado

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 8029
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 2 vezes
Curtiram: 1 vez

Entendendo eventos do teclado

Mensagem por Itamar M. Lins Jr. »

Ola!
Estava sem entender até hoje, como esse código funcionava.

Código: Selecionar todos

oBrw:bOther :=  {|oBrw,msg,wp|fKeyDown(oBrw,msg,wp)}
...
Function fKeyDown( oBrw,msg,wp )
IF msg == WM_KEYDOWN
...
ENDIF

if msg == WM_CHAR
..
endif

Return .T.
A pergunta que ficava na minha cabeça é como pode MSG ser duas coisas ao mesmo tempo ?
Agora eu entendi que a função do teclado é chamada 2 vezes. Uma para VERIFICAR WM_CHAR e outra WM_KEYDOWN.
Pq, sempre existe WM_KEYDOWN, mas pode ou não existir WM_CHAR, tipo pressionei CTRL ou SHIFT...não é WM_CHAR

WM_CHAR = algum caractere do teclado.
WM_KEYDOWN = qualquer tecla do teclado

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20415
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

Entendendo eventos do teclado

Mensagem por JoséQuintas »

Igual mouse.
Tem mouse down e mouse up.
José M. C. Quintas
Harbour 3.2, mingw, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (Linux/Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder