Weiss jemand näheres, ob die RTFUtil.dll zur Anzeige von RTF-Lizenztexten eine Zeichengrenze von 32K (32768 Zeichen) hat. Es wird mir Text einfach abgeschnitten. Kennt jemand einen Workaround?
This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Lizenztext anzeigen
Started by
Sir Charles
, Nov 17 2006 11:35
1 reply to this topic
Posted 22 November 2006 - 14:14
Lösung:
Zuerst ist festzustellen, dass die einzugebenden Zeichen für ein RichEdit-Control per default auf 32767 Zeichen begrenzt ist (32K-Grenze). Um diese Grenze zu lösen muss ein SendMessage an das Control gesendet werden. Das wird in der Funktion
function _CtrlSetMLEText(szDialogName, nControlID, listID)
im InstallShield-Paket RTFUtil folgendermassen gelöst:
Defintion der zu sendenden Message:
#define WM_USER 0x0400
#define EM_EXLIMITTEXT WM_USER+53
Nach dem schon existierenden Befehl zur Ermittlung des Handles für das Control
hCtrl = GetDlgItem(hDlg, nControlID);
kann die Message folgendermassen abgesetzt werden:
SendMessage(hCtrl, EM_EXLIMITTEXT, 0, 100000);
wobei der letzte Parameter die gewünschte Zeichenanzahl enthält.
Im Anhang ist der vollständige Code.
Zuerst ist festzustellen, dass die einzugebenden Zeichen für ein RichEdit-Control per default auf 32767 Zeichen begrenzt ist (32K-Grenze). Um diese Grenze zu lösen muss ein SendMessage an das Control gesendet werden. Das wird in der Funktion
function _CtrlSetMLEText(szDialogName, nControlID, listID)
im InstallShield-Paket RTFUtil folgendermassen gelöst:
Defintion der zu sendenden Message:
#define WM_USER 0x0400
#define EM_EXLIMITTEXT WM_USER+53
Nach dem schon existierenden Befehl zur Ermittlung des Handles für das Control
hCtrl = GetDlgItem(hDlg, nControlID);
kann die Message folgendermassen abgesetzt werden:
SendMessage(hCtrl, EM_EXLIMITTEXT, 0, 100000);
wobei der letzte Parameter die gewünschte Zeichenanzahl enthält.
Im Anhang ist der vollständige Code.