RE: Treeview Rant !
- Posted by Derek Parnell <ddparnell at bigpond.com> Apr 24, 2002
- 360 views
euman at bellsouth.net wrote: > Thanks Derek either I dont understand your responce or > you misinterpreted mine. > > 25 is never a returned value in vKey = peek(lParam + 12) > > If I hold down the shift + tab keys at the same time only > the tab key or '9' is returned. > > I might need to use HKM_SETHOTKEY as a work around > My fault. I guess I totally misunderstood your problem. When you wrote "works really good" I assumed that the code example was working to your satisfaction and that you were asking a hypothetical question. Anyhow, if the TreeView notifications don't give you the state of the shift keys, you might have to consider calling either "GetAsyncKeyState" or "GetKeyState" , or maybe even "GetLastInputInfo" to find out if the shift key(s) are down or up. ---- Derek. > ----- Original Message ----- > From: "Derek Parnell" <ddparnell at bigpond.com> > To: "EUforum" <EUforum at topica.com> > Sent: Wednesday, April 24, 2002 1:59 AM > Subject: RE: Treeview Rant ! > > > > euman at bellsouth.net wrote: > > > Hello all, > > > > > > I found what I consider to be a bug in the Treeview control > > > > > > consider this bit of code. -> > > > > > > elsif iMsg = TVN_KEYDOWN then > > > vKey = peek(lParam + 12) --struct tagTVKEYDOWN (WORD wVKey) > > > if vKey = 9 then > > > SetFocus(futurecontrol) > > > elsif vKey = 25 then -- should be shift+tab > > > SetFocus(previouscontrol) > > > end if > > > end if > > > > > > works really good but what if someone wanted to reverse the taborder > > > direction > > > for focus purposes? > > > > > > shift+tab "or" shift = 16 + tab = 9 should be vKey = 25 > > > but this control doesnt handle this in the right way thus returning vKey > > > > > > = 9 > > > > > > you cant go backward from a Treeview control, unless someone can provide > > > > > > a > > > work around... > > > > > > > This one way you might like to try: > > > > if StandardTabbing then > > ForwardTab = 9 > > BackwardTab = 25 > > else > > ForwardTab = 25 > > BackwardTab = 9 > > end if > > > > . . . > > > > elsif iMsg = TVN_KEYDOWN then > > vKey = peek(lParam + 12) --struct tagTVKEYDOWN (WORD wVKey) > > if vKey = ForwardTab then > > SetFocus(futurecontrol) > > elsif vKey = BackwardTab then -- should be shift+tab > > SetFocus(previouscontrol) > > end if > > end if > > > > ------------- > > This hightlights the problems of too much hard-coding. > > > > ----- > > Derek. > >