Ce que je veux, c'est savoir QUELLE EST LA COLONNE qui a été sélectionnée.
En natif avec PureBasic ce n'est pas possible.
■ Tu vas devoir associer un callback qui va analyser les actions sur ton ListIconGadget.
Ce callback va recevoir des messages envoyés par un control de ta fenêtre. Dans ton cas ce control est ta ListIconGadget()
- Les messages sont analysés avec l'API événementielle
#WM_NOTIFY .
- Le message est associé à la structure Microsoft
NMHDR.
- Le membre
hwndFrom de cette structure permettra de connaitre quel est le gadget émetteur du message.
- Le membre
code de cette structure permet de connaitre le type d’événement. Par exemple
#LVN_COLUMNCLICK
- S'agissant de ton ListIconGadget(), la structure Miscrosoft
NMLISTVIEW sera associé à ce gadget.
- Le membre
iSubItem de cette structure permet de connaitre la colonne sélectionnée.

Il est inutile de déclarer ces structures : C'est inclus dans PureBasic.
■ Le code de test.
Code : Tout sélectionner
EnableExplicit
Enumeration window
#mf
EndEnumeration
Enumeration gadget
#ListIcon
EndEnumeration
Procedure Callback(Window.l, Message.l, wParam.l, lParam.l)
Protected result = #PB_ProcessPureBasicEvents, Column
Protected *pnmh.NMHDR ; Le messages receptionné est associé à la structure Microsoft NMHDR
Protected *pnmv.NMLISTVIEW ; la structure Miscrosoft NMLISTVIEW est associé au ListIconGadget
Select Message
Case #WM_NOTIFY ; Reception d'un message
*pnmh = lParam ; Le message est envoyé au pointeur de la structure NMHDR
;Le membre hwndFrom permet de connaitre quel est le gadget émetteur du message
If *pnmh\hwndFrom = GadgetID(#ListIcon)
;Le membre code de cette structure permet de connaitre le type d’événement
Select *pnmh\code
Case #LVN_COLUMNCLICK
;L'information est envoyé au poineur de la structure NMLISTVIEW
*pnmv = lParam ;
;Le membre iSubItem permet de connaitre la colonne sélectionnée.
Column = *pnmv\iSubItem
MessageRequester("Information", "Clicked on Column "+Str(Column),0)
EndSelect
EndIf
EndSelect
ProcedureReturn result
EndProcedure
If OpenWindow(#mf, 0, 0, 800, 600, "ListiconGadget : Quel est la colonne sélectionnée ?", #PB_Window_ScreenCentered|#PB_Window_SystemMenu)
ListIconGadget(#ListIcon, 10, 10, 780, 550, "Column0", 100, #PB_ListIcon_FullRowSelect )
AddGadgetColumn(#ListIcon, 1, "Column1", 200)
AddGadgetColumn(#ListIcon, 2, "Column2", 200)
AddGadgetColumn(#ListIcon, 3, "Column3", 200)
AddGadgetItem(#ListIcon, 0, "Row0" +Chr(10) + "XXX" + Chr(10)+ "XXX" + Chr(10)+ "XXX")
AddGadgetItem(#ListIcon, 1, "Row1" +Chr(10) + "XXX" + Chr(10)+ "XXX" + Chr(10)+ "XXX")
AddGadgetItem(#ListIcon, 2, "Row2" +Chr(10) + "XXX" + Chr(10)+ "XXX" + Chr(10)+ "XXX")
AddGadgetItem(#ListIcon, 3, "Row3" +Chr(10) + "XXX" + Chr(10)+ "XXX" + Chr(10)+ "XXX")
SetWindowCallback(@Callback())
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
■ Références (
En anlais)
NMHDR structure :
https://msdn.microsoft.com/fr-fr/librar ... s.85).aspx
NMLISTVIEW structure :
https://msdn.microsoft.com/fr-fr/librar ... s.85).aspx