Page 1 sur 1
[R] Problème de focus sur une TreeView
Posté : dim. 10 mai 2009 18:57
par jl56
Bonjour à tous
J'essai d'utiliser une liste treeview et de positionner le focus sur un item
avec _GUICtrlTreeView_SetFocused(....
et je n'y arrive pas
Je regarde donc l'aide et l'exemple ne fonctionne pas non plus !! (_GUICtrlTreeView_GetFocused.au3 )
je l'ai modifié pour pouvoir mieux tester ( forcer le random à 3 etc)
j'ai tenté de selected l'item si on clique sur un autre item, 2 selections sont simultanés !!
plus je test moins je comprend
je suis un peu perdu à l'aide les amis
► Afficher le texte
Code : Tout sélectionner
#AutoIt3Wrapper_au3check_parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#include <GuiConstantsEx.au3>
#include <GuiTreeView.au3>
#include <WindowsConstants.au3>
Opt('MustDeclareVars', 1)
global $bouton,$msg
$Debug_TV = False ; Check ClassName being passed to functions, set to True and use a handle to another control to see it work
_Main()
Func _Main()
Local $hItem[6], $hRandomItem, $hTreeView
Local $iStyle = BitOR($TVS_EDITLABELS, $TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS, $TVS_CHECKBOXES)
GUICreate("TreeView Get Focused", 500, 400)
$bouton=GUICtrlCreateButton(" test ",1,1)
$hTreeView = GUICtrlCreateTreeView(2, 40, 396, 268, $iStyle, $WS_EX_CLIENTEDGE)
GUISetState()
_GUICtrlTreeView_BeginUpdate($hTreeView)
For $x = 0 To UBound($hItem) - 1
$hItem[$x] = GUICtrlCreateTreeViewItem(StringFormat("[%02d] New Item", $x + 1), $hTreeView)
Next
_GUICtrlTreeView_EndUpdate($hTreeView)
_GUICtrlTreeView_SetSelected($hTreeView, $hItem[4])
$hRandomItem = 4
MsgBox(4160, "Information", StringFormat("Item %d Focused? %s", $hRandomItem, _GUICtrlTreeView_GetFocused($hTreeView, $hItem[$hRandomItem])))
_GUICtrlTreeView_SetFocused($hTreeView, $hItem[$hRandomItem],True)
MsgBox(4160, "Information", StringFormat("Item %d Focused? %s", $hRandomItem, _GUICtrlTreeView_GetFocused($hTreeView, $hItem[$hRandomItem])))
; Loop until user exits
Do
$msg = GUIGetMsg()
;~ Sleep(500)
if $msg=$bouton Then
$hRandomItem = 3
MsgBox(4160, "Information", StringFormat("Item %d Focused? %s", $hRandomItem, _GUICtrlTreeView_GetFocused($hTreeView, $hItem[$hRandomItem])))
_GUICtrlTreeView_SetFocused($hTreeView, $hItem[$hRandomItem],True)
MsgBox(4160, "Information", StringFormat("Item %d Focused? %s", $hRandomItem, _GUICtrlTreeView_GetFocused($hTreeView, $hItem[$hRandomItem])))
EndIf
Until $msg = $GUI_EVENT_CLOSE
GUIDelete()
EndFunc ;==>_Main
merci de vos sugestions
A+ JL56
Re: [..] probleme de focus sur une treeview
Posté : dim. 10 mai 2009 21:53
par Tlem
Il semble effectivement que l'utilisation du focus ne fonctionne pas.
J'ai créé un ticket sur le bugtrack :
http://www.autoitscript.com/trac/autoit/ticket/948
Re: [..] Problème de focus sur une TreeView
Posté : dim. 10 mai 2009 22:24
par jl56
bonjour TLEM
J'étais passé sur le forum anglais sans succès
Merci de ta réponse
A+ JL56
Re: [..] Problème de focus sur une TreeView
Posté : dim. 10 mai 2009 22:54
par Tlem
Reste plus qu'à attendre une réponse d'un membre du groupe de développement.
Peut être sommes-nous passez à coté de quelque chose.

Re: [..] Problème de focus sur une TreeView
Posté : mer. 13 mai 2009 00:00
par Tlem
Réponse non concluante faite par Gary sur le Bug Trak.
Nouvelle question plus explicite sur le forum :
http://www.autoitscript.com/forum/index ... opic=94911
Re: [..] Problème de focus sur une TreeView
Posté : mer. 13 mai 2009 19:50
par jl56
Bonjour Tlem
Merci de faire suivre le probleme
dans l'attente
A+ JL56
Re: [R] Problème de focus sur une TreeView
Posté : jeu. 14 mai 2009 21:18
par jl56
bonjour Tlem
Apres quelques heures passé sur le forum anglais j'ai vu dans un code une fonction que j'avais pas bien
appréhendé. _GUICtrlTreeView_ClickItem(
du coup je m'en sers pour sectionner et focused l'item choisi
Je sais c'est peu limite mais cela fonctionne. alors dans l'attente
Si tu es curieux remplace dans l'exemple la ligne
_GUICtrlTreeView_SetFocused($hTreeView, $hitem[$hRandomItem],True)
par
_GUICtrlTreeView_ClickItem($hTreeView, $hitem[$hRandomItem], "left", true, 1,150)
C'est très marrant et instructif ( j'ai l'impression qu'il se plante dans les handles)
A+ JL56
Re: [R] Problème de focus sur une TreeView
Posté : jeu. 14 mai 2009 21:45
par Tlem
Je l'avais déjà fait, il est aussi possible d'utiliser la fonction _GUICtrlTreeView_SetState comme je l'ai dit sur le bugtrack pour sélectionner la ligne, mais ça ne résout pas le problème de la fonction _GUICtrlTreeView_SetFocused qui lui est liée (a moins que nous interprétions mal la fonction focus ...).
Re: [R] Problème de focus sur une TreeView
Posté : jeu. 14 mai 2009 22:08
par jl56
ok
L'interpretation doit etres bonne car dans listeview
_GUICtrlListView_SetItemFocused.au3 donne bien le focus de l'item
merci
A+ JL56
Re: [R] Problème de focus sur une TreeView
Posté : jeu. 14 mai 2009 22:37
par Tlem
_GUICtrlListView_SetItemFocused.au3 n'existe pas !!!
Par contre, il est vrais que dans l'exemple de
_GUICtrlListView_SetFocused.au3 la fonction
_GUICtrlTreeView_GetFocused renvois bien dans la MsgBox que l'item à le focus, mais graphiquement rien n'apparait, et si vous faites abstraction des MsgBox, rien n'indique que tel ou tel élément à le focus ...
Comme je l'ai dit dans le BugTrack, pour moi graphiquement il y à trois représentation graphique de l'état d'un élément d'un listview :
1 - Sélection grise.
2 - Sélection Bleu
3 - Cadre autour de l'élément (ceci devrait être le focus).
Re: [R] Problème de focus sur une TreeView
Posté : mar. 10 juil. 2012 13:38
par Julien
Bonjour,
Avez-vous eu des informations concluantes du bug tracker à propos de ce problème ?
J'utilise également clickitem mais je ne trouve pas ça très propre dans mon code.
Oups, j'ai déterré le sujet. désolé.
Re: [R] Problème de focus sur une TreeView
Posté : mar. 10 juil. 2012 20:56
par Tlem
Non. Mais vous pouvez relancer le sujet sur le forum US.
