Re: Win32libex
- Posted by =?iso-8859-1?B?U2tvZGE=?= <tone.skoda at SIOL.NET> Aug 21, 2000
- 567 views
------=_NextPart_000_0015_01C00B66.D67167E0 charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable =20 I know I've asked this several times now but, I still haven't found = the right method to makeing <tab> key inside of a Combobox work. What I would like to do is, have several (many) comboboxes on screen with dropdown and edit control be able to scan for <tab> or <enter> = key presses that would send me into the next combobox for either selection of dropdown or edit. You can check messages of parent of comboboxes and if it's TAB key, you activate or drop down next combobox. When you are in combobox it becomes more complicated. You have to set new window procedure for combobox: --save original window procedure originWndProc=3DGetWindowLong(wnd,GWL_WNDPROC) --set new window procedure for combobox junk=3DSetWindowLong(wnd,GWL_WNDPROC,call_back(routine_id("WndProc"))) --this procedure must go UP function WndProc(atom hwnd, atom msg, atom wParam, atom lParam) if msg=3DWM_KEY then end if =20 --this is important to do so taht combobox behaves like it should return CallWindowProc(originWndProc,hwnd, msg, wParam, lParam)=20 end function I never did it with combobox, only with edit window. But it should work, maybe with some modifications. I don't know either how it would work with Win32Lib, that's why i don't use it. ------=_NextPart_000_0015_01C00B66.D67167E0 charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD> <META content=3D"text/html; charset=3Diso-8859-1" = http-equiv=3DContent-Type> <META content=3D"MSHTML 5.00.2614.3401" name=3DGENERATOR> <STYLE></STYLE> </HEAD> <BODY bgColor=3D#ffffff> <BLOCKQUOTE=20 style=3D"BORDER-LEFT: #808000 2px solid; MARGIN-LEFT: 5px; MARGIN-RIGHT: = 0px; PADDING-LEFT: 5px; PADDING-RIGHT: 0px"> <DIV><FONT face=3DArial size=3D2> <DIV><FONT face=3DArial size=3D2></FONT> </DIV> <DIV><FONT face=3DArial size=3D2>I know I've asked this several times = now but, I=20 still haven't found the</FONT></DIV> <DIV><FONT face=3DArial size=3D2>right method to makeing = <tab> key=20 inside of a Combobox work.</FONT></DIV> <DIV> </DIV> <DIV><FONT face=3DArial size=3D2>What I would like to do is, have = several (many)=20 comboboxes on screen</FONT></DIV> <DIV><FONT face=3DArial size=3D2>with dropdown and edit control be = able to scan=20 for <tab> </FONT><FONT face=3DArial size=3D2>or <enter>=20 key</FONT></DIV> <DIV><FONT face=3DArial size=3D2>presses that would send me into the = next combobox=20 for either selection</FONT></DIV> <DIV><FONT face=3DArial size=3D2>of dropdown </FONT><FONT face=3DArial = size=3D2>or=20 edit.</FONT></DIV> <DIV><FONT size=3D2></FONT> </DIV> <DIV><FONT size=3D2><FONT color=3D#808000 face=3DVerdana>You can check = messages of=20 parent</FONT></FONT></DIV> <DIV><FONT size=3D2><FONT color=3D#808000 face=3DVerdana>of comboboxes = and if it's=20 TAB key,</FONT></FONT></DIV> <DIV><FONT size=3D2><FONT color=3D#808000 face=3DVerdana>you activate = or drop down=20 next combobox.</FONT></FONT></DIV> <DIV><FONT size=3D2></FONT> </DIV> <DIV><FONT size=3D2><FONT color=3D#808000 face=3DVerdana>When you are = in combobox it=20 becomes more complicated.</FONT></FONT></DIV> <DIV><FONT size=3D2><FONT color=3D#808000 face=3DVerdana>You have to = set new window=20 procedure for combobox:</FONT></FONT></DIV> <DIV> </DIV> <DIV><FONT color=3D#808000 face=3DVerdana>--save original window=20 procedure</FONT></DIV> <DIV><FONT color=3D#808000=20 = > <DIV> </DIV> <DIV><FONT color=3D#808000 face=3DVerdana>--set new window procedure = for=20 combobox</FONT></DIV> <DIV><FONT color=3D#808000=20 = "WndProc")))</FONT></DIV> <DIV> </DIV> <DIV><FONT size=3D2></FONT> </DIV> <DIV><FONT color=3D#808000 face=3DVerdana>--this procedure = must go=20 UP</FONT></DIV> <DIV><FONT size=3D2><FONT color=3D#808000 face=3DVerdana>function = WndProc(atom hwnd,=20 atom msg, atom wParam, atom lParam)</FONT></FONT></DIV> <DIV> </DIV> <DIV><FONT color=3D#808000 face=3DVerdana> if = msg=3DWM_KEY=20 then</FONT></DIV> <DIV><FONT color=3D#808000 = color=3D#808000 face=3DVerdana>end if</FONT></DIV> <DIV><FONT color=3D#808000 = face=3DVerdana> </FONT></DIV> <DIV><FONT color=3D#808000 face=3DVerdana> --this is important to = do so taht=20 combobox behaves like it should</FONT></DIV> <DIV><FONT size=3D2><FONT color=3D#808000 face=3DVerdana> return=20 CallWindowProc(originWndProc,hwnd, msg, wParam, lParam) <BR>end=20 function</FONT></FONT></DIV> <DIV><FONT size=3D2></FONT> </DIV> <DIV><FONT size=3D2></FONT> </DIV> <DIV><FONT size=3D2><FONT color=3D#808000 face=3DVerdana>I never did = it with=20 combobox, only with edit window.</FONT></FONT></DIV> <DIV><FONT size=3D2><FONT color=3D#808000 face=3DVerdana>But it should = work, maybe=20 with some modifications.</FONT></FONT></DIV> <DIV><FONT size=3D2><FONT color=3D#808000 face=3DVerdana>I don't know = either how it=20 would work with Win32Lib,</FONT></FONT></DIV> <DIV><FONT size=3D2><FONT color=3D#808000 face=3DVerdana>that's why i = don't use=20 it.</FONT></FONT><FONT=20 ------=_NextPart_000_0015_01C00B66.D67167E0--