[SOLVED] Treeview item handle and item index nr (Windows)
Posted: Wed Feb 12, 2025 8:10 pm
Hello,
I'd like to retrieve the item number hovered over (0 to x) of a treeview.
I have this piece of code that gives me the item's handle, but I can't establish a correspondence with the PB index number (like the one returned by GetGadgetState() during a selection).
How can I do this?
Thanks for your help.
[EDIT] : To see a fully fonctional code, see this message
I'd like to retrieve the item number hovered over (0 to x) of a treeview.
I have this piece of code that gives me the item's handle, but I can't establish a correspondence with the PB index number (like the one returned by GetGadgetState() during a selection).
How can I do this?
Thanks for your help.
Code: Select all
OpenWindow(0,0,0,400,200,"Treeview",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
TreeGadget(0,10,10,380,180)
AddGadgetItem(0,-1,"Item 0",0,0)
AddGadgetItem(0,-1,"Item 1",0,0)
AddGadgetItem(0,-1,"Node (Item 2)"+Str(a),0,0)
AddGadgetItem(0,-1,"Sub-Item 1 (Item 3)",0,1)
AddGadgetItem(0,-1,"Sub-Item 2 (Item 4)",0,1)
AddGadgetItem(0,-1,"Sub-Item 3 (Item 5)",0,1)
;
TVHTI.TV_HITTESTINFO
RECT.RECT
TVITEM.TVITEMEX
OldhItem.i
;
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow:Break
Case #WM_MOUSEMOVE
GetCursorPos_(@TVHTI\pt)
ScreenToClient_(GadgetID(0),@TVHTI\pt)
SendMessage_(GadgetID(0),#TVM_HITTEST,0,@TVHTI)
RECT\left=TVHTI\hItem
If TVHTI\hItem<>OldhItem
OldhItem=TVHTI\hItem
Debug "Handle item : "+OldhItem
If OldhItem<>0
; Something else here ?
SendMessage_(TVHTI\hItem,#TVM_GETITEM,0,@TVITEM)
Debug "Item : "+TVITEM\hItem
;
EndIf
EndIf
EndSelect
ForEver[EDIT] : To see a fully fonctional code, see this message
