Problem: 64KB Grenze in Edit-Control
-
Hallo,
Ich ich lese Daten von COM1 und zeige diese direkt im EditCtl an.
Es sind nicht mehr als 128KB zu erwarten, da der BarcodeScanner nicht mehr
Speicher hat.Unter XP funktioniert das wunderbar, unter Win98 jedoch nicht.
Ich hole mir immer den bisherigen Text aus dem Edit mit
GetDlgItemText(g_hDlg,IDC_EDIT1,szData, 128_KB)
hier streikt schon mal Win98. Rückgabe ist 0. Kann ich mir auch denken.Nun habe ich erstmal versucht das mit einem RichEdit zu lösen, doch auch hier
schein es die 64KB Grenze zu geben, es verhält sich wie mit einem normalen
EditCtl. Nun versuche ich nicht die Version 1.0 sondern 2.0 zu verwenden.// Laden RichEdit 1.0
HINSTANCE RichEditLib = LoadLibrary("riched32.dll");
DialogBox(hInstance, (LPCTSTR)IDD_MAIN, NULL, (DLGPROC)DlgMain);// Laden RichEdit 2.0
HINSTANCE RichEditLib = LoadLibrary("riched20.dll");
DialogBox(hInstance, (LPCTSTR)IDD_MAIN, NULL, (DLGPROC)DlgMain);Im ersten Fall wird der Dialog angezeigt, im zweiten Fall jedoch nicht !
Die riched20.dll ist auf beiden Systemen verfügbar, LoadLibrary kehrt erfolgreich zurück.Das RichEdit habe ich auf den Dialog mit dem ResourcenEditor gezogen.
Verwende VC6.0.Mir stellt sich auch die Frage, wo die Grenze bei den Ctls bei w2k, xp, 2003 liegt, oder gibts da keine mehr.
Vielen Dank im Voraus.
MfG
RB
-
Guck ma unter EM_SETLIMITTEXT (in der Remarks Sektion) nach.
Das der Dialog nicht aufgeht könnte daran liegen das RichEdit 2 nen anderen Fensterklassen-Namen hat als RichEdit 1
-
Hallo,
ähm ja habe ich ...
EM_SETLIMITTEXT
...
Remarks
Windows NT: For single-line edit controls, the text limit is either 0x7FFFFFFE bytes or the value of the wParam parameter, whichever is smaller. For multiline edit controls, this value is either 0xFFFFFFFF bytes or the value of the wParam parameter, whichever is smaller.Windows 95 and Windows 98: For single-line edit controls, the text limit is either 0x7FFE bytes or the value of the wParam parameter, whichever is smaller. For multiline edit controls, this value is either 0xFFFF bytes or the value of the wParam parameter, whichever is smaller.
--
Das gilt auch für das RichEdit.
Ja anderer KlassenName :p Jetzt funktioniert zwar RichEdit20 aber das
ursprüngliche Problem besteht immer noch.MfG
RB
-
die Kapazität lässt sich aber sehr leicht erhöhen:
SendMessage(RE_Handle, EM_EXLIMITTEXT, 0, (LPARAM)(DWORD)20971520);Im Beispiel auf 20MB, wer es braucht.