Icones dans un treeview

Messages postés
159
Date d'inscription
mardi 18 décembre 2001
Statut
Membre
Dernière intervention
15 septembre 2005
-
Messages postés
29
Date d'inscription
mardi 4 novembre 2003
Statut
Membre
Dernière intervention
20 mars 2006
-
Salut à vous,

J'ai un treeview qui liste un série de fichiers. j'aimerai que le treeview affiche l'icone associé à chaque fichier comme dans l'explorateur windows.

J'ai trouvé une piste sur ce site avec l'api suivante :
'CONSTANTES
Const DI_MASK = &H1
Const DI_IMAGE = &H2
Const DI_NORMAL = DI_MASK Or DI_IMAGE

'API
Private Declare Function ExtractAssociatedIcon Lib "shell32.dll" Alias "ExtractAssociatedIconA" (ByVal hInst As Long, ByVal lpIconPath As String, lpiIcon As Long) As Long

Private Declare Function DrawIconEx Lib "user32" (ByVal hdc As Long, ByVal xLeft As Long, ByVal yTop As Long, ByVal hIcon As Long, ByVal cxWidth As Long, ByVal cyWidth As Long, ByVal istepIfAniCur As Long, ByVal hbrFlickerFreeDraw As Long, ByVal diFlags As Long) As Long

Private Declare Function DestroyIcon Lib "user32" (ByVal hIcon As Long) As Long

Private Sub Form_Paint()

Dim mIcon As Long
'Extract the associated icon
mIcon = ExtractAssociatedIcon(App.hInstance, "C:\Autoexec.bat", 2)
'Draw the icon on the form
DrawIconEx Me.hdc, 0, 0, mIcon, 0, 0, 0, 0, DI_NORMAL
'remove the icon from the memory
DestroyIcon mIcon
End Sub


mais le problème, c'est que un treeview ne peut être associé qu'à une imagelist... comment contourner le problème ?

Merci d'avance,

Tcho !

Lolux

4 réponses

Messages postés
1133
Date d'inscription
mercredi 2 octobre 2002
Statut
Membre
Dernière intervention
24 juillet 2011
3
J'ai lu quelque chose là-dessus mais il faudrait que je retrouve le code.

Si j'ai bonne mémoire l'idée est la suivante :
- lors de l'ajout de fichier dans le treeviex, on détruit le contenu de l'imagelist;
- on récupère l'icône du fichier en question;
- on ajoute celle-ci dans l'imagelist;
- on reconnecte l'imagelist au treeview;
- et enfin on attribue l'icône de l'imagelist à l'élément qu'on vient d'ajouter au treeview.

Voilà pour la théorie...
Messages postés
1133
Date d'inscription
mercredi 2 octobre 2002
Statut
Membre
Dernière intervention
24 juillet 2011
3
Ca y est, j'ai retrouvé où j'avais vu cela...

Malheureusement, j'ai confondu TreeView et ListView...
Ceci dit, je pense que le principe est le même que ce soit pour l'un ou l'autre.

J'ai déposé cette source sur le site sous le titre "Affichez dynamiquement l'icône d'un fichier dans une listview" (source n° 6821).

J'espère que cela répond à ta question.
Messages postés
159
Date d'inscription
mardi 18 décembre 2001
Statut
Membre
Dernière intervention
15 septembre 2005

Merci à toi ô druide PROGRAMMIX !

Lolux
Messages postés
29
Date d'inscription
mardi 4 novembre 2003
Statut
Membre
Dernière intervention
20 mars 2006

Où se trouve la source en question. Je ne la trouve pas.

Merci