Mon edit control ne peut supporter plus de 30 001 charactères

Résolu
youpiyoyo Messages postés 539 Date d'inscription vendredi 6 juin 2003 Statut Membre Dernière intervention 14 juillet 2010 - 13 févr. 2007 à 09:52
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 - 13 févr. 2007 à 11:35
Je ne peux plus rejouter de caractères dans mon edit control lorsque j'arrive a  30 001 charactères...
y a t'il un moyen d'augmenter cette taille ou de creer un autre type de conteneur qui pourrait en supporter beaucoup plus...

merci d'avance,

youpi :)

5 réponses

yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
13 févr. 2007 à 10:48
Salut youpiyoyo !

Si l'edit est bien limité comme tu dis (je te crois sur parole j'ai pas vérifié), utilise un RichEdit qui doit pouvoir supporter beaucoup (beaucoup ) plus de caractères.
C'est tout de même à vérifier mais je ne pense pas me tromper.

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]
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
13 févr. 2007 à 11:23
Réserver les croyances au seul lieu de culte, les en faire sortir est toujours une nuisance mentale (BN copyright).

Un EDIT multiline est seulement limité par la mémoire disponible (comme tant d'autres choses):
EM_GETHANDLE
EM_SETHANDLE
EM_LIMITTEXT

Exemple d'un de mes vieux progs:
int __stdcall PrepBuffEdit()
{
  HLOCAL pbuff;
  pbuff = (HLOCAL) SendMessage(hedtxt, EM_GETHANDLE, 0, 0);
  if(pbuff) LocalFree(pbuff);
  pbuff = LocalAlloc(LHND, 2097152); // 2 Mo
  if(!pbuff) return 0;
  SendMessage(hedtxt, EM_SETHANDLE, (WPARAM) pbuff, 0);
  SendMessage(hedtxt, EM_LIMITTEXT, 2097151, 0);
  return 1;
}

ciao...
BruNews, MVP VC++
3
youpiyoyo Messages postés 539 Date d'inscription vendredi 6 juin 2003 Statut Membre Dernière intervention 14 juillet 2010
13 févr. 2007 à 10:43
j'ai même tester de remplacer mon edit control par ca:

IDC_EDIT5=CreateWindowEx(WS_EX_OVERLAPPEDWINDOW, "EDIT", "",
WS_CHILD | WS_VISIBLE | ES_MULTILINE | ES_AUTOVSCROLL |  WS_VSCROLL, 7,142,515,230, mainhwnd, NULL, hinst, NULL);

idem mon
int n = SendMessage(IDC_EDIT5, WM_GETTEXTLENGTH, 0, 0);

n bloque a 30 000 dans les deux cas...
youpi :)
0
youpiyoyo Messages postés 539 Date d'inscription vendredi 6 juin 2003 Statut Membre Dernière intervention 14 juillet 2010
13 févr. 2007 à 11:23
tu as raison, le richedit était la solution... mais c bien limiter...
ceci:
SendMessage(IDC_EDIT5,EM_LIMITTEXT,0,0);
a régler mon problème
d'après http://support.microsoft.com/kb/74225 et http://msdn2.microsoft.com/en-us/library/ms672084.aspx

mais ca double seulement ca nous amène à 64K c qui me semble peut quand même...

merci pour ta proposition...
youpi :)
0

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

Posez votre question
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
13 févr. 2007 à 11:35
Merci BruNews !
Et encore un truc d'appris.

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
Rejoignez-nous