Donc j'ai besoin d'un TreeView qui affiche les differents diques disponibles
sur le systeme et quelques repertoires
J'arrive a lister les disques en utilisant les fonctions de shellapi et
l'ont peu aussi recuperé des infos sur les icones correspondants etc
En me basant sur MSDN je suis arrivé a quelquechose comme ca :
SendMessage( hWndTV, TVM_INSERTITEM, 0, (LPARAM) &tvis);
--
hWndTV est un handle a un TreeView Control que je crée avant
Donc c'est ce que j'ai compris en lisant MSDN qui n'est pas tres clair sur
le sujet
Donc en gros ca marche, ca marque bien "Local Disk (C:)" dans mon treeview
et il y a la place necessaire a l'icone sur la gauche, le probleme c'est que
a la place de l'icone j'ai un carré noir...
le probleme doit venir que je me trompe dans l'appel de DrawIcon mais je ne
sais pas trop comment je dois faire
Donc si quelqu'un peut m'aider
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Vincent Burel
"Flzw" wrote in message news:botm8l$53s$
Donc j'ai besoin d'un TreeView qui affiche les differents diques
disponibles
sur le systeme et quelques repertoires J'arrive a lister les disques en utilisant les fonctions de shellapi et l'ont peu aussi recuperé des infos sur les icones correspondants etc En me basant sur MSDN je suis arrivé a quelquechose comme ca :
Ensuite vous pouvez communiquer ces images list à des TREEVIEW ou LISTVIEW... ne Pas détruire, ces Imageslistes sont systèmes.
Ensuite vous récupérer le numéro d'Icon dans vos images liste par exemple comme ca SHGetFileInfo((LPCSTR)filename, 0, &sfi, sizeof (SHFILEINFO), SHGFI_SYSICONINDEX | SHGFI_LARGEICON);
et voila votre numéro d'icone dans l'ImageList. nuIconDansImageList =sfi.iIcon;
Vous n'avez donc aucun icone à créer, rien à dessiner, et y'a pas de problème de HANDLE.
Vincent Burel.
"Flzw" <flownz@wanadoo.fr> wrote in message
news:botm8l$53s$1@news-reader3.wanadoo.fr...
Donc j'ai besoin d'un TreeView qui affiche les differents diques
disponibles
sur le systeme et quelques repertoires
J'arrive a lister les disques en utilisant les fonctions de shellapi et
l'ont peu aussi recuperé des infos sur les icones correspondants etc
En me basant sur MSDN je suis arrivé a quelquechose comme ca :
Ensuite vous pouvez communiquer ces images list à des TREEVIEW ou
LISTVIEW...
ne Pas détruire, ces Imageslistes sont systèmes.
Ensuite vous récupérer le numéro d'Icon dans vos images liste par exemple
comme ca
SHGetFileInfo((LPCSTR)filename, 0, &sfi, sizeof (SHFILEINFO),
SHGFI_SYSICONINDEX | SHGFI_LARGEICON);
et voila votre numéro d'icone dans l'ImageList.
nuIconDansImageList =sfi.iIcon;
Vous n'avez donc aucun icone à créer, rien à dessiner, et y'a pas de
problème de HANDLE.
Donc j'ai besoin d'un TreeView qui affiche les differents diques
disponibles
sur le systeme et quelques repertoires J'arrive a lister les disques en utilisant les fonctions de shellapi et l'ont peu aussi recuperé des infos sur les icones correspondants etc En me basant sur MSDN je suis arrivé a quelquechose comme ca :
Ensuite vous pouvez communiquer ces images list à des TREEVIEW ou LISTVIEW... ne Pas détruire, ces Imageslistes sont systèmes.
Ensuite vous récupérer le numéro d'Icon dans vos images liste par exemple comme ca SHGetFileInfo((LPCSTR)filename, 0, &sfi, sizeof (SHFILEINFO), SHGFI_SYSICONINDEX | SHGFI_LARGEICON);
et voila votre numéro d'icone dans l'ImageList. nuIconDansImageList =sfi.iIcon;
Vous n'avez donc aucun icone à créer, rien à dessiner, et y'a pas de problème de HANDLE.
Vincent Burel.
Christian ASTOR
Flzw a écrit:
Donc j'ai besoin d'un TreeView qui affiche les differents diques disponibles sur le systeme et quelques repertoires
Pas tip top : pas de Memory DC, de SelectObject(), ... memory leaks, etc... De plus, il faudrait SHGFI_SMALLICON , DrawIconEx() pour 16*16, ImageList_Create( 16,16, ILC_COLORDDB | ILC_MASK,16,1 ), ImageList_AddMasked(), renseigner tvis.itemex.iSelectedImage, etc...
Mais quelle que soit la méthode utilisée pour remplir le TreeView (méthode 'officielle' => EnumDesk de la PSDK (...Program FilesMicrosoft SDKsampleswinuiShellEnumDesk)) ce n'est pas une bonne façon de faire : il vaut mieux lui attribuer la System ImageList (SHGFI_SYSICONINDEX | SHGFI_SMALLICON) dès la création et on n'a plus ensuite qu'à insérer le bon index pour les icônes.
Flzw a écrit:
Donc j'ai besoin d'un TreeView qui affiche les differents diques disponibles
sur le systeme et quelques repertoires
Pas tip top : pas de Memory DC, de SelectObject(), ... memory
leaks, etc...
De plus, il faudrait
SHGFI_SMALLICON ,
DrawIconEx() pour 16*16,
ImageList_Create( 16,16, ILC_COLORDDB | ILC_MASK,16,1 ),
ImageList_AddMasked(),
renseigner tvis.itemex.iSelectedImage,
etc...
Mais quelle que soit la méthode utilisée pour remplir le TreeView
(méthode 'officielle' => EnumDesk de la PSDK
(...Program FilesMicrosoft SDKsampleswinuiShellEnumDesk))
ce n'est pas une bonne façon de faire : il vaut mieux lui attribuer la
System ImageList (SHGFI_SYSICONINDEX | SHGFI_SMALLICON) dès la création
et on n'a plus ensuite qu'à insérer le bon index pour les icônes.
Donc j'ai besoin d'un TreeView qui affiche les differents diques disponibles sur le systeme et quelques repertoires
Pas tip top : pas de Memory DC, de SelectObject(), ... memory leaks, etc... De plus, il faudrait SHGFI_SMALLICON , DrawIconEx() pour 16*16, ImageList_Create( 16,16, ILC_COLORDDB | ILC_MASK,16,1 ), ImageList_AddMasked(), renseigner tvis.itemex.iSelectedImage, etc...
Mais quelle que soit la méthode utilisée pour remplir le TreeView (méthode 'officielle' => EnumDesk de la PSDK (...Program FilesMicrosoft SDKsampleswinuiShellEnumDesk)) ce n'est pas une bonne façon de faire : il vaut mieux lui attribuer la System ImageList (SHGFI_SYSICONINDEX | SHGFI_SMALLICON) dès la création et on n'a plus ensuite qu'à insérer le bon index pour les icônes.