Changement de sélection dans une ListCtrl

Signaler
Messages postés
3
Date d'inscription
vendredi 18 janvier 2002
Statut
Membre
Dernière intervention
13 mars 2002
-
Messages postés
402
Date d'inscription
mardi 1 mai 2001
Statut
Membre
Dernière intervention
15 août 2011
-
Sous Visual C++, comment savoir que la sélection a changé dans une ListControl, je ne trouve aucun événement pour cela. Comment récupérer l'item qui a été sélectionné, vu qu'en plus c'est une liste simple sélection.
Aidez moi merci

3 réponses

Messages postés
402
Date d'inscription
mardi 1 mai 2001
Statut
Membre
Dernière intervention
15 août 2011

C'est pas compliquer! Clique droit sur t'as liste et Events, ensuite dans la liste de gauche il y à LBN_SELCHANGE pour sélection change, tu l'ajoute en double-cliquant sur LBN_SELCHANGE et ensuite clique sur OK et double-clique sur ton contrôle liste et voilà! Chaque fois que l'utilisateur va sélectionner un nouvelle item cette event va être appeler, pour récupérer l'item sélectionner voilà:

/* Sans les CString */
int index;
int len;
char *buf;

index = = SendDlgItemMessage(IDC_LIST1, LB_GETCURSEL, 0, 0);
if (index != LB_ERR)
{

len = SendDlgItemMessage(IDC_LIST1, LB_GETTEXTLEN, (WPARAM)index, 0);

if (len != LB_ERR)
{

buf = new char[(len+2)];
len = SendDlgItemMessage(IDC_LIST1, LB_GETTEXT, (WPARAM)index, (LPARAM)(LPCTSTR)buf);

if (len != LB_ERR)
{

MessageBox(buf, "Voici l'item sélectionner", MB_OK);

}

delete [] buf;

}

}

/* Avec les CString */

int index;
CString cbuf;

index = SendDlgItemMessage(IDC_LIST1, LB_GETCURSEL, 0, 0);

if (index != LB_ERR)
{

index = SendDlgItemMessage(IDC_LIST1, LB_GETTEXT, (WPARAM)index, (LPARAM)(LPCTSTR)cbuf);

if (index != LB_ERR)
{

MessageBox(cbuf.GetBuffer(0), "Voici l'item sélectionner", MB_OK);
cbuf.Empty();

}

}

Désoler si y'a des tites erreurs, je me suis relit et ca l'aire correct, tu testeras!

NitRic28@Hotmail.com
Messages postés
3
Date d'inscription
vendredi 18 janvier 2002
Statut
Membre
Dernière intervention
13 mars 2002

Sauf que c'est pas une ListBox mais une ListControl et donc il n'existe pas de message du type LBN_SELCHANGE.
Messages postés
402
Date d'inscription
mardi 1 mai 2001
Statut
Membre
Dernière intervention
15 août 2011

Désoler j'me suis tromper :| mais avec les ListControl ya le message NM_CLICK et pour récupérer l'item sélectionner tu peux regarder du coter de LVM_GETITEMTEXT

NitRic28@Hotmail.com