Code : Tout sélectionner
oldItem = -1 ;===>ligne
oldSubItem = -1 ;===>colonne
If OpenWindow(0, 100, 100, 600, 330, "ListIconGadget Cellules", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
;Ajout du ListIcon
ListIcon_0=ListIconGadget(#PB_Any , 5, 5, 595, 300, "", 0, #PB_ListIcon_GridLines)
;Remplissage du ListIcon 10 colonnes
For i = 1 To 10
AddGadgetColumn(ListIcon_0, i, "Colonne "+Str(i), 150)
Next
For row = 1 To 10
AddGadgetItem(ListIcon_0,-1,"")
For col = 1 To 100
SetGadgetItemText(ListIcon_0, row-1, "Ligne "+Str(row-1)+", Colonne "+Str(col), col)
Next
Next
SetActiveGadget(ListIcon_0)
Repeat
Event = WaitWindowEvent()
Select event
Case #PB_Event_Gadget
Select EventGadget()
;Cas du ListIcon
Case ListIcon_0
If EventType() = #PB_EventType_LeftClick ;Clic Gauche
Cellule.LVHITTESTINFO
hWnd = GadgetID(ListIcon_0)
;Position du curseur sur l'écran
GetCursorPos_(@Cellule\pt)
;Transformation coordonnées écran->ListIcon
MapWindowPoints_(0, hWnd, @Cellule\pt, 1)
;Quelle cellule sous le curseur ?
SendMessage_(hWnd, #LVM_SUBITEMHITTEST, 0, Cellule)
;Debug Cellule\iItem ;===>ligne
;Debug Cellule\iSubItem ;===>colonne
;Renvoie -1 en cas d'échec
;Affichage de la cellule en surbrillance
If Cellule\iItem<>-1
If oldItem <> -1
SetGadgetItemColor(ListIcon_0, oldItem, #PB_Gadget_BackColor, #White,oldSubItem)
SetGadgetItemColor(ListIcon_0, oldItem, #PB_Gadget_FrontColor, 0,oldSubItem)
EndIf
Debug GetGadgetItemText(ListIcon_0,Cellule\iItem , Cellule\iSubItem)
oldItem = Cellule\iItem
oldSubItem = Cellule\iSubItem
SetGadgetItemColor(ListIcon_0, oldItem, #PB_Gadget_BackColor, GetSysColor_(#COLOR_HIGHLIGHT),oldSubItem)
SetGadgetItemColor(ListIcon_0, oldItem, #PB_Gadget_FrontColor, GetSysColor_(#COLOR_HIGHLIGHTTEXT),oldSubItem)
EndIf
EndIf
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow
EndIf