Page 1 sur 1
[..] Interaction multiple
Posté : ven. 15 mai 2009 17:56
par L4crymal
Attention je vais essayer de me faire le mieux comprendre possible:
J'ai une boucle qui créer une 50 aine de TreeViewItem... ( la liste des processus )
Et j'aimerai que dès que je clic sur un, cela m'affiche toutes ses infos dans des TreeViewItem Child
Pour cela, j'ai créer une Array nommée $treeViewItemProcess[$i]
$i étant le nombre de la boucle qui créer les Items.
Et maintenant j'aimerai pouvoir avoir une interaction avec chaqu'un...
Est-ce possible?
J'ai essayer de cette façon:
Mais ça ne marche pas...
MERCI DE VOTRE AIDE

Re: [..] Interaction multiple
Posté : ven. 15 mai 2009 18:02
par Iste
Apres le switch, placer un
Code : Tout sélectionner
For $ii = 0 to UBound $treeViewItemProcess -1
If $msg = $treeViewItemProcess[$ii] then ; action
Next
Normalement ca devrait marcher, mais c'est peut etre pas la solution la plus légere
Re: [..] Interaction multiple
Posté : ven. 15 mai 2009 18:10
par L4crymal
Non ça ne fonctionne pas ... et c'est très lourd x)
EDIT: Si ça y est

j'ai réussi à bien le mettre mais j'ai peur que ce soit un peut lourd ....
Merci beaucoup, mais si une autre solution moins lourde existe je la prends

Re: [..] Interaction multiple
Posté : ven. 15 mai 2009 19:22
par orax
J'avais fait presque la même chose sauf que j'avais utilisé une listeview. Pour savoir quel élément a été cliqué j'ai utilisé GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") et avec ça, ça me retourne l'index de l'élément.
Si ça peut vous aider, voici le bout de code que j'ai pour ma listeview :
► Afficher le texte
Code : Tout sélectionner
; il y a normalement des #include à rajouter
Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
#forceref $hWnd, $iMsg, $iwParam
Local $hWndFrom, $iCode, $iIDFrom, $tNMHDR, $hWndListView, $tInfo, $index, $indexListe
Local $nom, $PID
$hWndListView = $hListView
If Not IsHWnd($hListView) Then $hWndListView = GUICtrlGetHandle($hListView)
$tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
$hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
$iCode = DllStructGetData($tNMHDR, "Code")
$iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
Switch $hWndFrom
Case $hWndListView
;
; ListView
;
Switch $iCode
Case $LVN_COLUMNCLICK
;
; clic sur une colonne de la liste
;
; http://msdn.microsoft.com/en-us/library/bb774804(VS.85).aspx
$tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
$indexColonne = DllStructGetData($tInfo, "SubItem")
Case $NM_DBLCLK
;
; double clic gauche
;
; http://msdn.microsoft.com/en-us/library/bb774867(VS.85).aspx
$tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
$indexListe = DllStructGetData($tInfo, "Index")
Re: [..] Interaction multiple
Posté : ven. 15 mai 2009 20:51
par Iste
Ha sinon, tu peux placer ma boucle dans la case Else du switch, comme ca elle se lance que si tu clic sur un truc non repertiorié
Edit : j'avais pas vu le m'essage d'orax,
plus difficile a appliquer, mais un code de bien meilleur qualité !