RE: Trapping the TAB key

new topic     » topic index » view thread      » older message » newer message

Once again Euphoria Man, you're cleaver tricks are much more simpler 
than the Win32lib way blink

euman at bellsouth.net wrote:
> ----- Original Message ----- 
> From: "Jonas Temple" <jktemple at yhti.net>
> > 
> > Does anyone know how, using Win32lib, to trap when the TAB key is 
> > pressed in: edit control, combo, dropdownlist?
> 
> I dont mind helping those who help theirself.....
> 
> Here's what you need to look for Jonas.....
> 
> global function shift_left (atom x, integer count)
>   return x * power (2, count)  
> end function
> 
> global function MAKELONG (atom a, atom b)
>  return or_bits (a, shift_left (b, 16))
> end function
> 
> atom user32
> user32 = open_dll("user32.dll")
> 
> constant 
>  xPeekMessage = define_c_func(user32, 
>  "PeekMessageA",{C_POINTER,C_LONG,C_UINT,C_UINT,C_UINT},C_LONG)
> ,xGetParent = define_c_func(user32, "GetParent",{C_LONG},C_LONG)
> ,xSendMessage = define_c_func(user32, "SendMessageA", {C_LONG, C_LONG, 
> C_INT, C_LONG}, C_LONG)        
> 
> global function SendMessage(atom hwnd, atom msg, atom wParam, atom 
> lParam)
>    return c_func(xSendMessage,{hwnd, msg, wParam, lParam}) 
> end function
> 
> constant WM_CHAR = 258,
>               PM_REMOVE = 1
> 
> -- this should be consealed in your edit controls subclass  in "if iMsg 
> = WM_KEYDOWN then"
> if wParam = 9 then -- handle tabkey fo edit control
>   junk = c_func(xPeekMessage,{tagMSG, c_func(xGetParent,{handle}), 0, 0, 
>   PM_REMOVE})      
>   junk = SendMessage(handle, WM_CHAR, wParam, MAKELONG(1, 14)) 
> end if            
> 
> handle will be the control ID....should work the same for MLE's, Combo's 
> etc, etc..
> 
> This traps the tabkey by sending a message to itself for further 
> processing.
> 
> WOW, Cool eh?


compared to setTabkeys(0)? Sure man, whatever.

> Euman
> 
>

new topic     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu