ListBox MFC Coincée après opérations!!!!

Signaler
Messages postés
15
Date d'inscription
jeudi 29 avril 2004
Statut
Membre
Dernière intervention
11 mai 2004
-
Messages postés
15
Date d'inscription
jeudi 29 avril 2004
Statut
Membre
Dernière intervention
11 mai 2004
-
Bonjour,

Je code actuellement un joli lecteur MP3 et j'utilise une list Box pour la playlist (style Winamp).

Pour agrémenter le tt, j'utilise MFC pour tt ce qui est gestion grafique. Mon problème est un peu compliqué et je ne le comprend pas:

Pourquoi sur certaines opérations la listBox se "bloque" sur un objet de la liste et chaque fois qu'on clique à coté, elle retourne sur l'objet qui a causé le blocage???

Il y a une fonction spéciale à utiliser pour débloquer tout??

12 réponses

Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Il n'y a pas de fonction pour fonctionp our "débloquer tout", puisque ca n'est pas normal que ca se bloque, tu dois faire un erreur quelque part
Messages postés
15
Date d'inscription
jeudi 29 avril 2004
Statut
Membre
Dernière intervention
11 mai 2004

Mais je ne comprend pas, regarde:

CString str;
int n;
UpdateData(true);
/////////////////////////////////////////////////
// Cherche la ligne surlignée dans la liste

int i = m_listecontr.GetCurSel();
if(i>=0)
{
n = m_listecontr.GetTextLen( i );
m_listecontr.GetText( i, str.GetBuffer(n) );
str.ReleaseBuffer();
//str2.Format(_T(" %s "), i, str.GetBuffer(0));
afxDump << str;
}
char *temp ;
temp = str.GetBuffer(3);

et en théorie dans le temp, je devrais avoir ce qui etait surligné dans la liste non?

Ou alors, peut etre connai tu une façon plus courte de savoir quel est la phrase surlignée??? :-(

Je ne comprend vraiment pas mon erreur..
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
à la place de temp = str.GetBuffer(3); j'aurais plutot fait un strcpy car de la manière que tu fais, temp et str restent liés, et c'est peut-être ca qui pose problème par la suite?
Je vais essayer déja chez moi voir ce que ca donne
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Bon j'ai essaié avec une ListBox dans un dialog et ca marche bien, à la fin temp contient bien le texte séléctionné; le problème ne doit pas venir de la
Messages postés
15
Date d'inscription
jeudi 29 avril 2004
Statut
Membre
Dernière intervention
11 mai 2004

Donc tu penses que ça ne vient pas de cette portion de code le blocage??

Tu l'as faite comment toi ta ClistBox? Avec quelles fonctions?
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
je l'ai foutue sur un dialog et je l'ai récupérée avec GetDlgItem:
CListBox* list = (CListBox*)GetDlgItem(IDC_LIST1);
Messages postés
15
Date d'inscription
jeudi 29 avril 2004
Statut
Membre
Dernière intervention
11 mai 2004

mais le pire c que je ne pense pas que cela vienne de str car en toute logique ils n'ont rien à voir avec la list box!!!

Pour combler le tout strcpy ne veut pas transformer le Cstring en Char* ppour les traiter!!!
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
pour le strcpy c'est normal, et puis tu n'as qua travailler qu'avec des char*...
Par contre tu peux le transformer en const char*
String str;
...
LPCTSTR s = (LPCTSTR)str;
Messages postés
15
Date d'inscription
jeudi 29 avril 2004
Statut
Membre
Dernière intervention
11 mai 2004

oui en fait c ça le pb... je ne travaille quasiment qu'avec des char * ... mais merci pour l'astuce! car a chaque fois c un bazard monstrueux!
Messages postés
15
Date d'inscription
jeudi 29 avril 2004
Statut
Membre
Dernière intervention
11 mai 2004

Ja'i essayé avec GetSel à la place de Getcursel... et c pareil...

snif :-(
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
tu as essayé de déboguer pour voir si déja i à la bonne valeur?
Messages postés
15
Date d'inscription
jeudi 29 avril 2004
Statut
Membre
Dernière intervention
11 mai 2004

G pas fait de débogage car si je fait une MessageBox de ce qui a été extrait, g le bon truc!! donc le i est bon je pense....