With the next code you can know which cell you clicked
See if that can help
Code:
Global Oldli,Oldr,Oldc,hCWnd,header,hi.LVHITTESTINFO
Procedure GetSubItem(ListIconID)
GetCursorPos_(@p.POINT)
ScreenToClient_(ListIconID, p)
hCWnd = ChildWindowFromPoint_ (ListIconID, p\y<< 32+p\x)
header = SendMessage_(ListIconID,#LVM_GETHEADER,0,0)
;If hCWnd <> header And hCWnd <> 0
hi\pt\x = p\x
hi\pt\y = p\y
SendMessage_(ListIconID,#LVM_SUBITEMHITTEST,0,@hi)
;EndIf
ProcedureReturn @hi
EndProcedure
Procedure GetInfo(ListIcon)
*hi.LVHITTESTINFO = GetSubItem(GadgetID(ListIcon))
SetGadgetState(ListIcon,-1)
SetGadgetItemColor(Oldli,OLdr,#PB_Gadget_FrontColor,#Black ,Oldc)
SetGadgetItemColor(Oldli,Oldr, #PB_Gadget_BackColor, $E8FFFF,Oldc)
If hCWnd <> header And hCWnd <> 0
SetGadgetItemColor(ListIcon,*hi\iitem,#PB_Gadget_FrontColor,#White ,*hi\isubitem)
SetGadgetItemColor(ListIcon,*hi\iitem, #PB_Gadget_BackColor,GetSysColor_(#COLOR_HIGHLIGHT),*hi\isubitem)
Oldli = listicon
Oldr = *hi\iitem
Oldc = *hi\isubitem
SetGadgetText(4, GetGadgetItemText(ListIcon, *hi\iitem,*hi\isubitem))
SetGadgetText(5, "ListIcon "+Str(ListIcon)+" / Row "+ Str(*hi\iitem)+" / Column " + Str(*hi\isubitem))
Else
SetGadgetText(4, "ListIcon " + Str(ListIcon) + " " + GetGadgetItemText(ListIcon, -1,*hi\isubitem))
SetGadgetText(5, "")
EndIf
;
EndProcedure
OpenWindow(0,0,0,630,460,"ListIcon Test",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
ListIconGadget(0,10,10,300,200,"Column 0",90,#PB_ListIcon_GridLines)
SetGadgetColor(0, #PB_Gadget_BackColor, $E8FFFF)
AddGadgetColumn(0,1,"Column 1",90)
AddGadgetColumn(0,2,"Column 2",90)
ListIconGadget(1,320,10,300,200,"Column 0",90,#PB_ListIcon_GridLines)
SetGadgetColor(1, #PB_Gadget_BackColor, $E8FFFF)
AddGadgetColumn(1,1,"Column 1",90)
AddGadgetColumn(1,2,"Column 2",90)
ListIconGadget(2,10,220,300,200,"Column 0",90,#PB_ListIcon_GridLines)
SetGadgetColor(2, #PB_Gadget_BackColor, $E8FFFF)
AddGadgetColumn(2,1,"Column 1",90)
AddGadgetColumn(2,2,"Column 2",90)
ListIconGadget(3,320,220,300,200,"Column 0",90,#PB_ListIcon_GridLines)
SetGadgetColor(3, #PB_Gadget_BackColor, $E8FFFF)
AddGadgetColumn(3,1,"Column 1",90)
AddGadgetColumn(3,2,"Column 2",90)
For x = 0 To 3
For i=0 To 8
AddGadgetItem(x,-1,"R"+Str(i)+"/C0"+Chr(10)+"R"+Str(i)+"/C1"+Chr(10)+"R"+Str(i)+"/C2")
Next
Next
StringGadget(4, 10,430,300, 20,"",#PB_String_ReadOnly)
SetGadgetColor(4, #PB_Gadget_BackColor, $EDFFEE)
StringGadget(5, 320, 430, 300,20,"")
SetGadgetColor(5, #PB_Gadget_BackColor, $EDFFEE)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Q = 1
Case #WM_LBUTTONDOWN,#WM_LBUTTONUP
Result = GetActiveGadget()
Select Result
Case 0 To 3
GetInfo(GetActiveGadget())
Case 4
Case 5
EndSelect
; Case #WM_LBUTTONUP
; Result = GetActiveGadget()
; If Result = 0 Or Result = 1 Or Result = 2 Or Result = 3
; GetInfo(GetActiveGadget())
; EndIf
EndSelect
Until Q = 1