patricktoledano
Messages postés3Date d'inscriptionsamedi 5 mars 2005StatutMembreDernière intervention26 août 2007 28 nov. 2006 à 13:02
C'est excellent.
Cependant je ccherche une solution pour VBA. Dans ce cas il est nécessaire de récupérer le Hwnd du contrôle qui n'est pas accessible dans MSACCESS et plus généralement dans VBA.
Comment retrouver le handle de tout contrôle au sein de VBA et notamment sous MSACCESS. Je suppose que l'on peut le faire via des API et VBE. J'ai cherché sans triuver.
Merci
nah666
Messages postés75Date d'inscriptionsamedi 30 août 2003StatutMembreDernière intervention 7 janvier 20081 26 janv. 2005 à 17:38
En utilisant le code + haut :
Pour changer couleur de fond, envoyer le message suivant :
Private Const TVM_SETBKCOLOR = (TV_FIRST + 29)
Pour changer couleur de ligne, envoyer le message suivant :
Private Const TVM_SETLINECOLOR = (TV_FIRST + 40)
Pour changer couleur de texte, envoyer le message suivant :
Vyper909
Messages postés24Date d'inscriptionjeudi 27 mai 2004StatutMembreDernière intervention 8 janvier 2007 29 mai 2004 à 17:37
Ok, merci tout-de-même...
cs_Kelpan
Messages postés70Date d'inscriptionmercredi 24 avril 2002StatutMembreDernière intervention17 septembre 2006 29 mai 2004 à 10:08
A première vue, ce n'est pas prévu.
J'ai pas la réponse.
Vyper909
Messages postés24Date d'inscriptionjeudi 27 mai 2004StatutMembreDernière intervention 8 janvier 2007 28 mai 2004 à 20:37
Il a expliqué comment changer la couleur de FOND des noeuds. Moi je parle de la fine ligne à peine visible qui RELIE les noeuds entre eux et/ou à la racine. C'est pas la même chose...
cs_Kelpan
Messages postés70Date d'inscriptionmercredi 24 avril 2002StatutMembreDernière intervention17 septembre 2006 28 mai 2004 à 20:20
lis les commentaires BFR l'a déjà expliqué !
Vyper909
Messages postés24Date d'inscriptionjeudi 27 mai 2004StatutMembreDernière intervention 8 janvier 2007 28 mai 2004 à 14:22
Et maintenant, une dernière question (c'est moins important que le texte lui-même):
Est-il possible de changer la couleur des lignes qui relient les noeuds aux parents ou à la racine? Car c'est un gris pâle et il n'est pas très visible à moins d'être sur un fond blanc ou très foncé. Toutes les teintes de couleurs assez pâles tendent à les faire disparaitre...
Merci encore!
Vyper909
Messages postés24Date d'inscriptionjeudi 27 mai 2004StatutMembreDernière intervention 8 janvier 2007 28 mai 2004 à 04:28
Ahhh super! Ca fonctionne!
Mille mercis!
cs_Kelpan
Messages postés70Date d'inscriptionmercredi 24 avril 2002StatutMembreDernière intervention17 septembre 2006 27 mai 2004 à 22:12
Peut-être a-tu fais une erreur d'utilisation. Le code que j'ai mis n'est pas à recopier mot pour mot ^^
Essaye comme ceci par exemple :
Dans un module
' Décalration
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const TV_FIRST As Long = &H1100
Private Const TVM_SETBKCOLOR As Long = (TV_FIRST + 29)
dans Form_Load() ou dans une procédure d'initialisation
Private Sub Form_Load()
myColor = RGB(128, 128, 128)
SendMessage monTreeView.hWnd, TVM_SETBKCOLOR, 0, myColor
End Sub
Vyper909
Messages postés24Date d'inscriptionjeudi 27 mai 2004StatutMembreDernière intervention 8 janvier 2007 27 mai 2004 à 21:56
Au fait, j'ai aussi le SP6... et petit message à BFR: ce ne sont pas les noeuds que je veux changer de couleur de fond, mais bien le TreeView complet.
Vyper909
Messages postés24Date d'inscriptionjeudi 27 mai 2004StatutMembreDernière intervention 8 janvier 2007 27 mai 2004 à 21:54
Grrr!! Moi ca me donne un "Bad DLL calling convention"... "Mauvaise utilisation de DLL". J'ai VB6, le contrôle TreeView est à la version 6 également et j'utilise le code ci-dessus mot pour mot, ca ne marche pas. J'ai évidemment appelé mon TreeView "monTreeView" pour les besoins de la cause. HELP!
OverDarck
Messages postés116Date d'inscriptionjeudi 12 juillet 2001StatutMembreDernière intervention23 juin 2005 28 juin 2003 à 16:49
ouppppsss me suis tromper de source lol c'est de fait +ieur choses a la foi dsl....
OverDarck
Messages postés116Date d'inscriptionjeudi 12 juillet 2001StatutMembreDernière intervention23 juin 2005 28 juin 2003 à 16:48
Slt super cool comme control mais un peu trop contraignant tu devrai selon moi faire plusieur style prédefinit en crée un Enum qui regrouperai les plusioeurs style qui séléctionnner modifi tout les parametres d'aparance et de bordure d'un coup...
Mais sinon il est vraiment bien !!!
cs_BFR
Messages postés88Date d'inscriptionmardi 30 juillet 2002StatutMembreDernière intervention 1 mars 2008 7 mai 2003 à 16:45
Si cela peut servir
'-Déclaration
Dim NodeX As Node
'-Création du noeud "Bureau"
Set NodeX = TreeView1.Nodes.Add(, , "Bureau", "Bureau")
'-Coloriser le noeud en gris
NodeX.BackColor = &HE0E0E0
'-Création du noeud "Poste de travail"
Set NodeX = TreeView1.Nodes.Add("Bureau", tvwChild, "Racine", "Poste de travail")
'-Coloriser le noeud en gris
NodeX.BackColor = &HE0E0E0
'-Afficher le noeud
NodeX.EnsureVisible
'-Destruction objet
Set NodeX = Nothing
Wizard17
Messages postés47Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention 9 juillet 2005 16 avril 2003 à 19:59
Slt, bien, mais j'ai un ptit pb, moi g bien la couleur de fond voulue, mais, le backcolor des noeuds restent blanc ainsi que celle des icones a 'lintérieur du treeview, serait tu comment faire pour ke tout prennent la meme couleur ? merci
cs_Kryogen
Messages postés18Date d'inscriptionvendredi 3 janvier 2003StatutMembreDernière intervention 3 mars 2008 28 janv. 2003 à 21:12
Salut Kelpan, ta fonction SendMessageLong fait référence à SendMessageA et SendMessage fait aussi référence à cette fonction dans la dll "user32.dll". En clair, en fait, tu appelles la meme fonction que tu déclares "SendMessageLong" ou "SendMessage" seul le paramètre change, microsoft à utilisé SendMessageLong pour définir le nom de sa fonction afin de souligner le faite que le paramètre est un long, mais tu aurais pu la fonction "Envoieunmessage()" si tu fais réference toujours à la meme fonction, et les meme paramètres, ca marche aussi, seul l'Alias compte.... Voilà j'espere t'avoir éclairé!...
cs_Kelpan
Messages postés70Date d'inscriptionmercredi 24 avril 2002StatutMembreDernière intervention17 septembre 2006 19 oct. 2002 à 21:06
Salut l'API SendMessage permet d'envoyer un message (comme son nom l'indique) à un objet qui comporte un Handle (object.Hwnd)
Les constantes te permet de preciser à ki ou à koi s'adresse ton message (ici la couleur de fond).
Pour connaitre les constantes, y a po de secret fo chercher.
Si tu as MSDN, la platform SDK peut t'aider.
En ce ki me concerne g trouvé toutes mes infos dans la partie
User Interface Service
Common Control
Et l'objet TreeView
A l'interieur il y a une section TreeView Control Message
Je remarque avec étonnement que j'appelle l'API SendMessageLong à la place de SendMessage. Je n'ai aucune Info dessus.
La seule différence se situe au niveau du 2eme paramètre qui est Long à la place de Any (pour SendMessage)
Mais les 2 fonctionnent parfaitememnt. Je te conseille de suavegarder ton travaille avant de faire des tests car l'utilisation d'une mauvaise constante fait planter l'appli.
Voila ce ke je peux te dire sur ce sujet.
@+
leptidev
Messages postés206Date d'inscriptionmercredi 30 janvier 2002StatutMembreDernière intervention 4 décembre 2007 19 oct. 2002 à 16:40
Salut, je vois beaucoup de fois cet API, comment s'en sert on ??? et surtout, ou trouver une bonne doc pour pouvoir utiliser tous les API ?
28 nov. 2006 à 13:02
Cependant je ccherche une solution pour VBA. Dans ce cas il est nécessaire de récupérer le Hwnd du contrôle qui n'est pas accessible dans MSACCESS et plus généralement dans VBA.
Comment retrouver le handle de tout contrôle au sein de VBA et notamment sous MSACCESS. Je suppose que l'on peut le faire via des API et VBE. J'ai cherché sans triuver.
Merci
26 janv. 2005 à 17:38
Pour changer couleur de fond, envoyer le message suivant :
Private Const TVM_SETBKCOLOR = (TV_FIRST + 29)
Pour changer couleur de ligne, envoyer le message suivant :
Private Const TVM_SETLINECOLOR = (TV_FIRST + 40)
Pour changer couleur de texte, envoyer le message suivant :
Private Const TVM_SETTEXTCOLOR = (TV_FIRST + 30)
Source :
http://www.vbaccelerator.com/home/VB/Code/Controls/TreeView/TreeView_Control/VB5_TreeView_Full_Source_zip_vbalTreeView_ctl.asp
bonne prog all
29 mai 2004 à 17:37
29 mai 2004 à 10:08
J'ai pas la réponse.
28 mai 2004 à 20:37
28 mai 2004 à 20:20
28 mai 2004 à 14:22
Est-il possible de changer la couleur des lignes qui relient les noeuds aux parents ou à la racine? Car c'est un gris pâle et il n'est pas très visible à moins d'être sur un fond blanc ou très foncé. Toutes les teintes de couleurs assez pâles tendent à les faire disparaitre...
Merci encore!
28 mai 2004 à 04:28
Mille mercis!
27 mai 2004 à 22:12
Essaye comme ceci par exemple :
Dans un module
' Décalration
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const TV_FIRST As Long = &H1100
Private Const TVM_SETBKCOLOR As Long = (TV_FIRST + 29)
dans Form_Load() ou dans une procédure d'initialisation
Private Sub Form_Load()
myColor = RGB(128, 128, 128)
SendMessage monTreeView.hWnd, TVM_SETBKCOLOR, 0, myColor
End Sub
27 mai 2004 à 21:56
27 mai 2004 à 21:54
28 juin 2003 à 16:49
28 juin 2003 à 16:48
Mais sinon il est vraiment bien !!!
7 mai 2003 à 16:45
'-Déclaration
Dim NodeX As Node
'-Création du noeud "Bureau"
Set NodeX = TreeView1.Nodes.Add(, , "Bureau", "Bureau")
'-Coloriser le noeud en gris
NodeX.BackColor = &HE0E0E0
'-Création du noeud "Poste de travail"
Set NodeX = TreeView1.Nodes.Add("Bureau", tvwChild, "Racine", "Poste de travail")
'-Coloriser le noeud en gris
NodeX.BackColor = &HE0E0E0
'-Afficher le noeud
NodeX.EnsureVisible
'-Destruction objet
Set NodeX = Nothing
16 avril 2003 à 19:59
28 janv. 2003 à 21:12
19 oct. 2002 à 21:06
Les constantes te permet de preciser à ki ou à koi s'adresse ton message (ici la couleur de fond).
Pour connaitre les constantes, y a po de secret fo chercher.
Si tu as MSDN, la platform SDK peut t'aider.
En ce ki me concerne g trouvé toutes mes infos dans la partie
User Interface Service
Common Control
Et l'objet TreeView
A l'interieur il y a une section TreeView Control Message
Je remarque avec étonnement que j'appelle l'API SendMessageLong à la place de SendMessage. Je n'ai aucune Info dessus.
La seule différence se situe au niveau du 2eme paramètre qui est Long à la place de Any (pour SendMessage)
Mais les 2 fonctionnent parfaitememnt. Je te conseille de suavegarder ton travaille avant de faire des tests car l'utilisation d'une mauvaise constante fait planter l'appli.
Voila ce ke je peux te dire sur ce sujet.
@+
19 oct. 2002 à 16:40