Page 1 sur 1

[R] Surlignage des TreeView

Posté : jeu. 13 janv. 2011 21:05
par zeshrek
Je suis en train de faire un peu de 'fine' tuning sur un script, et j'ai un léger souci d'esthétique.
J'ai un treeview avec checkbox. Pour avoir une meilleure visibilitéje passe en rouge les options non cochées. Le hic, c'est que quand on coche une case, la ligne devient sélectionnée, et se retrouve en blanc sur fond bleu, et ca m'embete
Voici un script d'exemple, et si qqun peut me dire pour virer cet entourage bleu...
d'avance merci

Code : Tout sélectionner

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <TreeViewConstants.au3>
#include <WindowsConstants.au3>
Global $TreeViewItem[10][2]

$Form1 = GUICreate("Form1", 146, 206, 305, 131)
$TreeView1 = GUICtrlCreateTreeView(24, 16, 73, 121, $TVS_CHECKBOXES)
$TreeViewItem[0][0] = GUICtrlCreateTreeViewItem("1", $TreeView1)
$TreeViewItem[1][0] = GUICtrlCreateTreeViewItem("2", $TreeView1)
$TreeViewItem[2][0] = GUICtrlCreateTreeViewItem("3", $TreeView1)
$TreeViewItem[3][0] = GUICtrlCreateTreeViewItem("4", $TreeView1)
$TreeViewItem[4][0] = GUICtrlCreateTreeViewItem("5", $TreeView1)
$TreeViewItem[5][0] = GUICtrlCreateTreeViewItem("6", $TreeView1)
$Button1 = GUICtrlCreateButton("Sortie", 16, 152, 91, 25, $WS_GROUP)

For $i = 0 To 5
    $TreeViewItem[$i][1] = 1
Next

For $i = 0 To 5
    GUICtrlSetState($TreeViewItem[$i][0], $TreeViewItem[$i][1])
Next

GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button1
            Exit
        Case Else
            For $i = 0 To 5
                If $nMsg = $TreeViewItem[$i][0] Then
                    $TreeViewItem[$i][1] = BitAND(GUICtrlRead($TreeViewItem[$i][0]), 1)
                    GUICtrlSetColor($TreeViewItem[$i][0], 0xFF0000 * Abs($TreeViewItem[$i][1] - 1)) ; couleur rouge si décochée, noire si cochée
                EndIf
            Next
    EndSwitch
WEnd

Re: [...] Surlignage des TreeView

Posté : jeu. 13 janv. 2011 22:16
par Tlem
C'est tiré par les cheveux, mais j'utiliserais ceci dans le IF :

Code : Tout sélectionner

_GUICtrlTreeView_SetSelected($TreeView1, $TreeViewItem[$i][0], False)

Re: [R] Surlignage des TreeView

Posté : jeu. 13 janv. 2011 23:54
par zeshrek
Tiré par les cheveux ou pas, ca marche, et ca fait exactement ce que j'attendais !
Merci Boss ! ;)

[Edit] en fait... c'est presque ca, mais pas encore tout a fait. Plus de surlignage effectivement mais en fait la ligne active ne psse malgré tout pas en rouge quand on la décoche, il faut sélectionner une autre ligne...

[Re-Edit] bon, ca m'a mis sur la piste, j'ai juste créé un bouton caché et apres le _GUICtrlTreeView_SetSelected j'ai mis un _GUICtrlButton_SetFocus qui pointe sur ce boutton. La classe internationale, ca marche.

Encore merci