Icones dans un treeview

cs_Lolux Messages postés 159 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 15 septembre 2005 - 26 déc. 2002 à 13:38
Najdar Messages postés 29 Date d'inscription mardi 4 novembre 2003 Statut Membre Dernière intervention 20 mars 2006 - 4 nov. 2003 à 15:49
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

cs_PROGRAMMIX Messages postés 1133 Date d'inscription mercredi 2 octobre 2002 Statut Membre Dernière intervention 24 juillet 2011 2
26 déc. 2002 à 14:39
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...
0
cs_PROGRAMMIX Messages postés 1133 Date d'inscription mercredi 2 octobre 2002 Statut Membre Dernière intervention 24 juillet 2011 2
26 déc. 2002 à 16:35
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.
0
cs_Lolux Messages postés 159 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 15 septembre 2005
26 déc. 2002 à 16:49
Merci à toi ô druide PROGRAMMIX !

Lolux
0
Najdar Messages postés 29 Date d'inscription mardi 4 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
4 nov. 2003 à 15:49
Où se trouve la source en question. Je ne la trouve pas.

Merci
0
Rejoignez-nous