[R] Surlignage des TreeView

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
zeshrek
Niveau 10
Niveau 10
Messages : 984
Enregistré le : mer. 17 nov. 2010 09:31
Localisation : Sur ma chaise
Status : Hors ligne

[R] Surlignage des TreeView

#1

Message 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
Si vis pacem para bellum
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [...] Surlignage des TreeView

#2

Message 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)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
zeshrek
Niveau 10
Niveau 10
Messages : 984
Enregistré le : mer. 17 nov. 2010 09:31
Localisation : Sur ma chaise
Status : Hors ligne

Re: [R] Surlignage des TreeView

#3

Message 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
Si vis pacem para bellum
Répondre