Alors voilà ma question, je suis actuellement en train de réaliser un programme avec un TreeView chargé à partir d'un fichier .ini , mon problème et que je voudrais lier le double clique sur les items du TreeView à des actions, comme ouvrir une page internet ou un dossier(exemple: ShellExecute("www.google.com") ).
(j'ai déjà la fonction permettant de détecter un clique sur un Item) Il reste à lier l'action automatiquement à partir d'un lien dans le fichier .ini à chaque Item.
Je m'en remet à vous pour m'aider ou simplement m'aiguiller, merci d'avance!
$GUI=GUICreate("TEST",300,@DesktopHeight, @DesktopWidth-300,0,$WS_POPUP);création de la fenêtre $barredep=GUICtrlCreateLabel(" TEST",0,0,300,20,-1,$GUI_WS_EX_PARENTDRAG);barre de déplacement du widget $barredep=GuiCtrlSetColor(-1,0X0000FF) $barredep=GUICtrlSetBkColor(-1,0X606060) $list=GUICtrlCreateTreeView(0,40,300,@DesktopHeight-60,BitOR($TVS_HASBUTTONS,$TVS_HASLINES,$TVS_LINESATROOT,$TVS_DISABLEDRAGDROP,$TVS_SHOWSELALWAYS),$WS_EX_CLIENTEDGE);création de la liste GUISetState(@SW_SHOW,$GUI)
$fDblClk=False; remise à zéro de la variable pour pouvoir double cliquer à nouveau EndIf
WEnd ;libération de la mémoire------------------------------------------------------------------------------------------------------------------------------------------------------------
;fonctions--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Func MY_WM_NOTIFY($hWnd,$Msg,$wParam,$lParam); fonction détection double clique sur liste
Alors voilà la solution que j'ai trouvé, enregistrer dans le tableau $reference[][] le nom de l'Item du Treeview et y associer le lien. mon code fonctionne bien, mais j'ai un bug, lorsque l'on double clique sur le petit "+" pour étendre la liste cela ouvre quand même le lien qui y est associé, si quelqu'un pouvait m'aider à régler ce soucis
$GUI=GUICreate("TEST",300,@DesktopHeight, @DesktopWidth-300,0,$WS_POPUP);création de la fenêtre $barredep=GUICtrlCreateLabel(" TEST",0,0,300,20,-1,$GUI_WS_EX_PARENTDRAG);barre de déplacement du widget $barredep=GuiCtrlSetColor(-1,0X0000FF) $barredep=GUICtrlSetBkColor(-1,0X606060) $list=GUICtrlCreateTreeView(0,40,300,@DesktopHeight-60,BitOR($TVS_HASBUTTONS,$TVS_HASLINES,$TVS_LINESATROOT,$TVS_DISABLEDRAGDROP,$TVS_SHOWSELALWAYS),$WS_EX_CLIENTEDGE);création de la liste GUISetState(@SW_SHOW,$GUI)
$fDblClk=False; remise à zéro de la variable pour pouvoir doublecliquer à nouveau EndIf
WEnd ;libération de la mémoire------------------------------------------------------------------------------------------------------------------------------------------------------------
;fonctions--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Func MY_WM_NOTIFY($hWnd,$Msg,$wParam,$lParam); fonction detection double clique sur liste
;fonction remplissage liste---------------------------------------------------------------------------------------------------------------------------------------------------------- Func _IniGetSectionNames() $varx=IniReadSectionNames($file) If@errorThen MsgBox(4096,"","Error occured, probably no INI file.") Else For$x=1To$varx[0] _IniReadInfo($varx[$x]) Next EndIf EndFunc ;fonction remplissage liste suite---------------------------------------------------------------------------------------------------------------------------------------------------- Func _IniReadInfo($sSection) Dim$sValue $var=IniReadSection($file,$sSection) If@errorThen MsgBox(4096,"","Error occured, check INI file.") Else $TreeView2=GUICtrlCreateTreeViewitem($sSection,$list) For$i=1To$var[0][0] Local$temporaire=StringSplit($var[$i][0],';') $TreeView3=GUICtrlCreateTreeViewItem($temporaire[1],$TreeView2) $reference[$nbreference][1]=$temporaire[1] if$temporaire[2]<>''Then;test si lien associé à l'item de la viewlist $reference[$nbreference][2]=$temporaire[2];ajout d'un lien associé à l'item de la viewlist GuiCtrlSetColor(-1,0X0000FF) EndIf $nbreference=$nbreference+1 $sValue=StringSplit($var[$i][1],'|') For$x=1To$sValue[0] if$sValue[$x]<>''Then $temporaire=StringSplit($sValue[$x],';') $TreeView4=GUICtrlCreateTreeViewitem($temporaire[1],$TreeView3) $reference[$nbreference][1]=$temporaire[1] if$temporaire[2]<>''Then;test si lien associé à l'item de la viewlist $reference[$nbreference][2]=$temporaire[2];ajout d'un lien associé à l'item de la viewlist GuiCtrlSetColor(-1,0X0000FF) endif $nbreference=$nbreference+1 endif Next Next EndIf EndFunc