Entendendo eventos do teclado

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 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: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Entendendo eventos do teclado

Mensagem por JoséQuintas »

Igual mouse.
Tem mouse down e mouse up.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, 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