Recuperer texte d'une ListView

glipper Messages postés 246 Date d'inscription dimanche 2 juin 2002 Statut Membre Dernière intervention 11 septembre 2016 - 30 juin 2003 à 15:11
gillescpp Messages postés 33 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 22 octobre 2007 - 25 mars 2005 à 08:43
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

cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
30 juin 2003 à 15:15
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
0
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
30 juin 2003 à 15:28
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
0
cs_Xentor609 Messages postés 258 Date d'inscription jeudi 20 mars 2003 Statut Membre Dernière intervention 16 août 2004
30 juin 2003 à 15:29
char temp[255];
Essaye ListView_GetItemText
(hwndListView,ItemSel,0,temp,256);
Bye, Xentor609
0
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
30 juin 2003 à 15:30
Glipper, un petit conseil pour ton SendMessage, Il y a plein de macro pour eviter tous tes SendMessage incomprehensible !

:-p :sleepy) :shy) :sleepy) :-p
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gillescpp Messages postés 33 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 22 octobre 2007
25 mars 2005 à 08:31
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
0
gillescpp Messages postés 33 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 22 octobre 2007
25 mars 2005 à 08:43
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)
0
Rejoignez-nous