Couleur treeview [Résolu]

Signaler
Messages postés
419
Date d'inscription
lundi 30 août 2004
Statut
Membre
Dernière intervention
28 janvier 2008
-
Messages postés
206
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
14 septembre 2011
-
Bonjour a tous,
(today journee question mdr)
voila voila j'ai un treview je me suis baser sur la source de violent ken a cet adresse pour voir comment utiliser un treeview pour noob

http://vbfrance.com/code.aspx?ID=33270

j'ai ete voir la source vennant de nah666 pour la couleur du treeview la :

http://www.vbfrance.com/codes/MODIFIER-COULEURS-TREEVIEW_29160.aspx

cependant celle de violent ken aucun probleme pour la comprendre et l'adapter (qui en doutais ^^)
cependant la source pour mettre de la couleur est bien mais sur base de boite de dialog (truc avec les couleur) mais moi je connais d'avance les couleurs que je veux dés le demarrage du logiciel) dans mon treeview alors comment faire (simplement ^^) pour mettre de la couleur de fond , de ligne et de texte en form load sans boite de dialogue (avec du code couleur hexa ou vb ou rvb m'en fou mais que sa se fasse automatiquement avec les couleur choisie ^^)

voila voila ses pas plus compliquer que ca

encore un grand merci a violent_ken pour son aide pour les treeview dont la source (comme les autres de lui d'ailleurs) sont magnifiquement simple et pratique

ps: j'ai mis categorie api vu que la source pour les couleur se base sur l'api sendmessage mais bon si vous avez encore une autre methode suis pas compliquer moi tant que cela fonctionne ^^

7 réponses

Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
Essais avec la version 5.0 du common controls.
Messages postés
419
Date d'inscription
lundi 30 août 2004
Statut
Membre
Dernière intervention
28 janvier 2008

' declaration de l'api
Private Declare Function SendMessageLong Lib "user32" _
        Alias "SendMessageA" (ByVal hwnd As Long, _
                                ByVal wMsg As Long, _
                                ByVal wParam As Long, _
                                ByVal lParam As Long) As Long


' les constantes pour les message vers le treeview
Private Const TV_FIRST As Long = &H1100
Private Const TVM_SETBKCOLOR As Long = (TV_FIRST + 29)
Private Const TVM_SETLINECOLOR As Long = (TV_FIRST + 40)
Private Const TVM_SETTEXTCOLOR As Long = (TV_FIRST + 30)


Private Sub Form_Load()
Tvw.LabelEdit = tvwManual
Tvw.Checkboxes = False
Tvw.HotTracking = False
Tvw.FullRowSelect = False
Tvw.SingleSel = True
Tvw.LineStyle = tvwRootLines


SendMessageLong Tvw.hwnd, TVM_SETBKCOLOR, 0, &H0&
SendMessageLong Tvw.hwnd, TVM_SETLINECOLOR, 0, &H8000&
SendMessageLong Tvw.hwnd, TVM_SETTEXTCOLOR, 0, &HC000&


Set nodx = Tvw.Nodes.Add(, , "n1", "1")
    Set nodx = Tvw.Nodes.Add("n1", tvwChild, "n1.1", "1.1")
        Set nodx = Tvw.Nodes.Add("n1.1", tvwChild, "n1.1.1", "1.1.1")
        Set nodx = Tvw.Nodes.Add("n1.1", tvwChild, "n1.1.2", "1.1.2")
        Set nodx = Tvw.Nodes.Add("n1.1", tvwChild, "n1.1.3", "1.1.3")
    Set nodx = Tvw.Nodes.Add("n1", tvwChild, "n1.2", "1.2")
        Set nodx = Tvw.Nodes.Add("n1.2", tvwChild, "n1.2.1", "1.2.1")
        Set nodx = Tvw.Nodes.Add("n1.2", tvwChild, "n1.2.2", "1.2.2")
        Set nodx = Tvw.Nodes.Add("n1.2", tvwChild, "n1.2.3", "1.2.3")
        Set nodx = Tvw.Nodes.Add("n1.2", tvwChild, "n1.2.4", "1.2.4")
        Set nodx = Tvw.Nodes.Add("n1.2", tvwChild, "n1.2.5", "1.2.5")
    Set nodx = Tvw.Nodes.Add("n1", tvwChild, "n1.3", "1.3")
        Set nodx = Tvw.Nodes.Add("n1.3", tvwChild, "n1.3.1", "1.3.1")
        Set nodx = Tvw.Nodes.Add("n1.3", tvwChild, "n1.3.2", "1.3.2")
    Set nodx = Tvw.Nodes.Add("n1", tvwChild, "n1.4", "1.4")
        Set nodx = Tvw.Nodes.Add("n1.4", tvwChild, "n1.4.1", "1.4.1")
        Set nodx = Tvw.Nodes.Add("n1.4", tvwChild, "n1.4.2", "1.4.2")
        Set nodx = Tvw.Nodes.Add("n1.4", tvwChild, "n1.4.3", "1.4.3")
        Set nodx = Tvw.Nodes.Add("n1.4", tvwChild, "n1.4.4", "1.4.4")
        Set nodx = Tvw.Nodes.Add("n1.4", tvwChild, "n1.4.5", "1.4.5")
        Set nodx = Tvw.Nodes.Add("n1.4", tvwChild, "n1.4.6", "1.4.6")
        Set nodx = Tvw.Nodes.Add("n1.4", tvwChild, "n1.4.7", "1.4.7")
        Set nodx = Tvw.Nodes.Add("n1.4", tvwChild, "n1.4.8", "1.4.8")
        Set nodx = Tvw.Nodes.Add("n1.4", tvwChild, "n1.4.9", "1.4.9")
        Set nodx = Tvw.Nodes.Add("n1.4", tvwChild, "n1.4.10", "1.4.10")
End Sub
Private Sub tvw_NodeClick(ByVal Node As MSComctlLib.Node)
Label1.Caption = "Le chemin :  " + Node.FullPath
End Sub

j'ai reussi a modifier la couleur dans mon code adapter comme ken cependant cela me fait des carrer gris partout (surement l'emplacement des img des noeud etc enfin je vois que ca)

donc voila comment resoudre ce ptit prob ? ^^
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
57
Salut,

Peu etre devrais tu "jouer" aussi avec la propriété Style de ton TreeView. Essaie par exemple de la mettre à 0 - tvwTextOnly
@+,   Ju£i?n
Messages postés
419
Date d'inscription
lundi 30 août 2004
Statut
Membre
Dernière intervention
28 janvier 2008

j'ai essayer et si je met a 0 (ou meme autres chose) sois ses ok j'ai plus les carrer gris de l'img mais alors j'ai plus les lignes (que je souhaite) sois sa laisse les ligne et plus d'img mais le text est comme "surligner" par du gris :-/
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
57
Salut,

Peu etre alors essaie 4 - tvwTreeLinesText.

@+,   Ju£i?n
Messages postés
419
Date d'inscription
lundi 30 août 2004
Statut
Membre
Dernière intervention
28 janvier 2008

j'ai essayer tous de 0 a 7 et ses toujours se surlignage qui reviend ;-)
Messages postés
206
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
14 septembre 2011

C'est bien qu'il y'est des solutions mais bon, le coup d'utiliser un "vieux" contrôle n'est pas très pro.
Pour ma part je propose plutôt de rechercher les nouvelles constants appliquable à la version 6.
Dites vous que selon le logiciel d'installation que vous utiliserez pour distibuer vos programmes, il pourront peut être mêtre à jour le contrôle et alors vos constantes ne seront de toutes façon plus bonne !

Merci de tenir informé si quelqu'un trouve les constantes valables pour la version 6

<hr />Guillaume - VB6 n'est pas mort !

<hr />