Recuperer texte d'une ListView

Signaler
Messages postés
246
Date d'inscription
dimanche 2 juin 2002
Statut
Membre
Dernière intervention
11 septembre 2016
-
Messages postés
33
Date d'inscription
mercredi 19 février 2003
Statut
Membre
Dernière intervention
22 octobre 2007
-
Lol bonjour, (et vi encore moi, désolé :)
Maintenant, j'essaie de récuperer le nom de l'item selectionné dans ma ListView. J'ai récuperé le numero de l'item selectionné en faisant:

int iSelect=SendMessage(GetDlgItem ( hWnd , IDC_LIST1 ),LVM_GETNEXTITEM,-1,LVNI_FOCUSED);

Et maintenant, je voudrais recuperer le texte associé à l'item.
J'ai essayé ceci :

SendDlgItemMessage(GetDlgItem ( hWnd , IDC_LIST1 ),IDC_LIST1 , LVM_GETITEMTEXT, (WPARAM)iSelect, (LPARAM)buffer);

Mais il me renvoi n'importe quoi dans buffer. J'ai regardé l'aide de Visual, mais ca ne m'aide vraiment pas bcp, et je n'ai rien trouvé la dessus sur cppfrance.com

6 réponses

Messages postés
1138
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
25 janvier 2009
4
Mr GLIPPER, le faineant qui ne veut pas lire l'aide,
puisque tu preferes faire chercher les autres, je fais chercher a ta place !!!

:-p :sleepy) :shy) :sleepy) :-p
Messages postés
1138
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
25 janvier 2009
4
Bon alors tu initialise BIEN (la est tout le boulot !) la strucure LV_ITEM

Et puis tu appelles 'ListView_GetItem'.

Voila, L'initialisation :
mask = LVIF_TEXT ;
pszText = TonBuffer[256]; // (ou va apparaitre le nom !)
cchTextMax = 256; // taille de ton buffer
l'handle sur l'item que tu a recu par je ne sais quoi (iSelect)

Bon tu m'appelle pour plus de precision, mais je sais deja tout car c'est le meme bins pour les TreeView, alors tu prend mon programme et au lieu des nom 'TreeView' tu fais 'ListView' !!!!!!!!!

(Bon avec quelque variantes)
:-p :sleepy) :shy) :sleepy) :-p
Messages postés
258
Date d'inscription
jeudi 20 mars 2003
Statut
Membre
Dernière intervention
16 août 2004

char temp[255];
Essaye ListView_GetItemText
(hwndListView,ItemSel,0,temp,256);
Bye, Xentor609
Messages postés
1138
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
25 janvier 2009
4
Glipper, un petit conseil pour ton SendMessage, Il y a plein de macro pour eviter tous tes SendMessage incomprehensible !

:-p :sleepy) :shy) :sleepy) :-p
Messages postés
33
Date d'inscription
mercredi 19 février 2003
Statut
Membre
Dernière intervention
22 octobre 2007

Bonjour,



J'ai aussi un probleme la dessus.



J'ai une ListView qui comporte 5 colonnes.



Lorsque que j'essaie de récupérer le texte avec :
ListView_GetItemText(list, a, 0, tampon, 64); // tout fonctionne bien.



Par contre, lorsque j'essaie d'acceder aux subitems (les autres
colonnes) : L'appel à ListView_GetItemText(list, a,
1, tampon, 64); me donne un résultat indéchiffrable du type : "¼ÊÑwÀ‰" au lieu du texte attendu.



J'ai essayé d'utiliser SendMessage(list, LVM_GETITEMTEXT, (LPARAM) a,
(WPARAM) &tampon); le résultat est sensiblement le même.



Si quelqu'un a la solution ...



Merci



Nicolas
Messages postés
33
Date d'inscription
mercredi 19 février 2003
Statut
Membre
Dernière intervention
22 octobre 2007

En fait, je crois que j'ai touvé. En fait, bien qu'ayant passé le HWND
du contrôle en argument la fonction ne devait pas pouvoir y accéder.

J'ai donc mis le HWND en variable globale et tout a l'air de bien fonctionner.

C'est une solution qui n'est peut être pas idéale mais c'est une solution pour ceux qui auraient ce genre de problème.

Voila

Nicolas



PS : La solution à retenir pour obtenir le texte est bien sûr : ListView_GetItemText(list, a, 0, tampon, 64); //(le zero étant le numéro de la colonne)