I have already tried it, but I cannot store more than 32 KB of text in a
Richedit field (using Win32::GUI::Richedit).
Those 32 kb of text takes around 48 kb of rich text, but it cannot store
more than that.
I have tried using the Load() and Save() methods and I have also tried
creating the rich text manually and storing it in the field, but it
allow more than 32 kb of text.
Look at the Win32::GUI::RidhEdit methods GetLimittext(), SetLimitText(),
An unfortunate misspelling on that last one; perhaps that can be fixed in
a future version - as of 1.05 it's still LimiteText instead of LimitText
Of course, both names may need to be kept for several versions, so as not
to break any code that's using the misspelled version.
Here's some more info on the text size limit:
The EM_LIMITTEXT message sets the text limit of an edit control. The text
limit is the maximum amount of text, in TCHARs, that the user can type
into the edit control. You can send this message to either an edit control
or a rich edit control.
For edit controls and Microsoft Rich Edit 1.0, bytes are used. For Rich
Edit 2.0 and later, characters are used.
To send this message, call the SendMessage function as follows. lResult =
SendMessage( // returns LRESULT in lResult
(HWND) hWndControl, // handle to destination control
(UINT) EM_LIMITTEXT, // message ID
(WPARAM) wParam, // = (WPARAM) () wParam;
(LPARAM) lParam // = 0; not used, must be zero
Specifies the maximum number of TCHARs the user can enter. For ANSI text,
this is the number of bytes; for Unicode text, this is the number of
characters. This number does not include the terminating null character.
Rich edit controls: If this parameter is zero, the text length is set to
Edit controls on Windows NT/2000/XP: If this parameter is zero, the text
length is set to 0x7FFFFFFE characters for single-line edit controls or -1
for multiline edit controls.
Edit controls on Windows 95/98/Me: If this parameter is zero, the text
length is set to 0x7FFE characters for single-line edit controls or 0xFFFF
for multiline edit controls.
This parameter is not used.
This message does not return a value.
The EM_LIMITTEXT message limits only the text the user can enter. It does
not affect any text already in the edit control when the message is sent,
nor does it affect the length of the text copied to the edit control by
the WM_SETTEXT message. If an application uses the WM_SETTEXT message to
place more text into an edit control than is specified in the EM_LIMITTEXT
message, the user can edit the entire contents of the edit control.
Before EM_LIMITTEXT is called, the default limit for the amount of text a
user can enter in an edit control is 32,767 characters.
Edit controls on Windows NT/2000/XP: 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 -1 byte or the value of the wParam parameter, whichever is
Edit controls on Windows 95/98/Me: 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.
Rich Edit: Supported in Rich Edit 1.0 and later. Use the message
EM_EXLIMITTEXT for text length values greater than 64,000. For information
about the compatibility of rich edit versions with the various system
versions, see About Rich Edit Controls.
Message InformationHeader Declared in Winuser.h, include Windows.h
Minimum operating systems Windows 95, Windows NT 3.1
Edit Controls Overview, EM_EXLIMITTEXT, WM_SETTEXT
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
Perl-Win32-GUI-Users mailing list