Changement de sélection dans une ListCtrl

cs_nunette Messages postés 3 Date d'inscription vendredi 18 janvier 2002 Statut Membre Dernière intervention 13 mars 2002 - 22 janv. 2002 à 15:10
NitRic Messages postés 402 Date d'inscription mardi 1 mai 2001 Statut Membre Dernière intervention 15 août 2011 - 23 janv. 2002 à 18:27
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

NitRic Messages postés 402 Date d'inscription mardi 1 mai 2001 Statut Membre Dernière intervention 15 août 2011
23 janv. 2002 à 00:34
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
0
cs_nunette Messages postés 3 Date d'inscription vendredi 18 janvier 2002 Statut Membre Dernière intervention 13 mars 2002
23 janv. 2002 à 09:32
Sauf que c'est pas une ListBox mais une ListControl et donc il n'existe pas de message du type LBN_SELCHANGE.
0
NitRic Messages postés 402 Date d'inscription mardi 1 mai 2001 Statut Membre Dernière intervention 15 août 2011
23 janv. 2002 à 18:27
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
0
Rejoignez-nous