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

Résolu
Signaler
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
-
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
-
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

Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
16
"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++ (@++)<!--
Messages postés
1491
Date d'inscription
dimanche 19 novembre 2000
Statut
Modérateur
Dernière intervention
7 juillet 2014

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+
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
Un path ETAIT limité à 260, avant Vista.

ciao...
BruNews, MVP VC++
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
3
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]
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
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++
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
3
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]