Item de listview limité à 259 caractères ?!

Résolu
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 - 7 juin 2007 à 14:59
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 - 7 juin 2007 à 15:57
Bonjour à toutes et à tous.

Voilà mon souci. Dans une listview que j'ai créée, j'ajoute un item de cette façon :

LVItem.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_PARAM;
LVItem.iItem = Item;
LVItem.iSubItem = 0;
LVItem.pszText = FichDossARec.NomFichDoss;
LVItem.cchTextMax = sizeof(FichDossARec.NomFichDoss);
LVItem.lParam = (LPARAM)IndexExt;
LVItem.iImage = 2;
SendMessage(ListViewhWnd[2], LVM_INSERTITEM, 0, (LPARAM)&LVItem);

Ma chaine de caractère (FichDossARec.NomFichDoss) fait 295 caractères de long et le sizeof(FichDossARec.NomFichDoss) fait 1024. Donc à priori pas de souci pour ajouter correctement mon item.
Seulement, ô surprise, une fois ajouté, mon item ne fait plus que 259 caractères de long !!!

Est-ce quequelqu'un a une idée de la cause ?
Y a-t-il moyen de mettre plus de caractère dans un item ?

Merci d'avance pour votre aide et si vous voulez des précisions n'hésitez pas à me les demander.

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
____________________________________________
[Site officiel de YoyoCut, découpe fichiers open source]

6 réponses

SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
7 juin 2007 à 15:29
"Note that although the list-view control allows any length string to be stored
as item text, only the first 260 TCHARs are displayed."

MSDN

C++ (@++)<!--
3
cs_max12 Messages postés 1491 Date d'inscription dimanche 19 novembre 2000 Statut Modérateur Dernière intervention 7 juillet 2014
7 juin 2007 à 15:32
Salut.

Le treeview et le listview sont très proche, un treeview fonctionne avec un path et un path est limité a 260 caractères sous Windows si ma mémoire est bonne, bon sa aide pas beaucoup mais c'est un drôle de lien a faire. La longueur maximal serait donc définie par le même chiffre que MAX_PATH. Sa aide pas beaucoup mais p-ê qu'en faisant des liens quelque chose peut aboutir

A+
3
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 19
7 juin 2007 à 15:44
Un path ETAIT limité à 260, avant Vista.

ciao...
BruNews, MVP VC++
3
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 3
7 juin 2007 à 15:51
PARFAIT !!!

Merci pour vos explications très claires et si rapides.
Donc en fait, la listview n'affiche que les 260 premiers caractères mais conserve tout de même la chaine entière si elle fait plus que MAX_PATH.
Pour info, BruNews, MAX_PATH est passé à combien sous Vista ?

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
____________________________________________
[Site officiel de YoyoCut, découpe fichiers open source]
0

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

Posez votre question
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 19
7 juin 2007 à 15:55
Je ne m'en sers plus, j'ai des path > 1 Ko dans dossier Windows alors je mets buffer à 4 Ko.

ciao...
BruNews, MVP VC++
0
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 3
7 juin 2007 à 15:57
Ok merci quand même BruNews.
Encore une fois merci à tous pour ces réponses si rapides.

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
____________________________________________
[Site officiel de YoyoCut, découpe fichiers open source]
0