Remplacer ds listbox

cs_flatou Messages postés 92 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 22 février 2006 - 19 août 2004 à 11:42
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 - 19 août 2004 à 20:17
salut a tous
j'ai un petit prob pour remplacer une string dans une listbox. Voici que j'utilise :

int item = SendMessage(hList, LB_GETCURSEL, 0, 0); // recupere l'item selectionne

[...]
SendMessage(hList, LB_SETITEMDATA, item, (long)replace); // remplace la string par la valeur de replace


je pense avoir utilisé ce qu'il faut mais ca doit etre un prob de buffer. replace est initialisé comme char.
merci d'avance

12 réponses

D1m3x Messages postés 402 Date d'inscription samedi 28 décembre 2002 Statut Membre Dernière intervention 21 juillet 2005 1
19 août 2004 à 11:50
Pourquoi caster replace en long ? est-ce obligatoire pour cette fonction ? (je ne connais pas bien win32...)

Merci de répondre, je pourrais alors t'aider un peu mieux :)

Car je ne vois pas comment un long pourrait devenir du texte! un long est un nombre! Pour obtenir un texte tu met un char * :)

ciao :)

:.: [DmXx] [[irc://irc.quakenet.org/ex-concept #eX-Concept @ QNet]]:.:
0
cs_flatou Messages postés 92 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 22 février 2006
19 août 2004 à 11:53
si je ne cast pas soit en long, soit en lparam, voila l'erreur du compilo :
SendMessageA' : cannot convert parameter 4 from 'char [260]' to 'long'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast

c'est pour cela que je pense que c'est un prob de buffer
0
D1m3x Messages postés 402 Date d'inscription samedi 28 décembre 2002 Statut Membre Dernière intervention 21 juillet 2005 1
19 août 2004 à 11:54
Hum oui ok je vois, mais cela n'ira jamais en tant que long, un long ne donnera jamais une chaîne de caractère, attend 2 minutes je vais faire un tour sur la MSDN et je te dis comment faire si je trouve :)

ciao

:.: [DmXx] [[irc://irc.quakenet.org/ex-concept #eX-Concept @ QNet]]:.:
0
D1m3x Messages postés 402 Date d'inscription samedi 28 décembre 2002 Statut Membre Dernière intervention 21 juillet 2005 1
19 août 2004 à 12:00
Ben voilà je viens de faire un tour sur la MSDN et j'ai trouvé la fonction SetDlgItemText, voici un lien:
SendDlgItemText Function

Cette fonction est simple d'utilisation, je ne suis pas sur qu'elle permette de faire ce que tu veux mais je pense bien, il faut pouvoir récupérer l'item à changer dans un HWND et alors ça ira comme sur des roulettes :)

j'espère que c'est possible :)

ciao ;)

:.: [DmXx] [[irc://irc.quakenet.org/ex-concept #eX-Concept @ QNet]]:.:
0

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

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
19 août 2004 à 12:06
int item = SendMessage(hList, LB_GETCURSEL, 0, 0);
SendMessage(hList, LB_DELETESTRING, item, 0);
SendMessage(hList, LB_INSERTSTRING, item, (long)replace);

ciao...
BruNews, Admin CS, MVP Visual C++
0
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
19 août 2004 à 12:08
Pas de sendDlgItemText pour une list box, LB_SETITEMDATA est fait pour ca.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
19 août 2004 à 12:16
LB_SETITEMDATA est fait pour associer une valeur 32 bits a un index string de la listbox.

ciao...
BruNews, Admin CS, MVP Visual C++
0
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
19 août 2004 à 12:19
Ok dsl alors, j'ai aps tres bien compris lutilité de LB_SETITEMDATA, mm en lisant MSDN, associer une valeur a un item, ca veut dire ? changer l'index ?
0
cs_flatou Messages postés 92 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 22 février 2006
19 août 2004 à 12:21
Merci a tous pour vos reponses, le probleme est resolu :)
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
19 août 2004 à 12:22
Par exemple tu insert la valeur d'1 HWND a un titre de fenetre mis dans une listbox.
Ok serait ridicule mais juste pour exemple.

ciao...
BruNews, Admin CS, MVP Visual C++
0
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
19 août 2004 à 12:30
ok ok, merci Brunews.
0
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
19 août 2004 à 20:17
on peut aussi se servir de ces 32 bits de data pour y mettre un pointeur sur une structure qui contient d'autres info sur l'item de la listbox.
0
Rejoignez-nous