RTF in ein RichEdit laden
-
Ich schreibe gerade einen Installer für ein größeres Programm und möchte ein RTF in eine RICHEDIT Control laden (Ich arbeite normalerweise mit MFC's soll aber in diesem fall auf diese verzichten). Das File soll nur angezeigt werden die Möglichkeit den Text zu ändern ist nicht notwendig. Als erstes ein Auszug aus dem Code.
Hier lade ich mein File (eine Lizenz):
std::string LicenceFolder; LicenceFolder = "licence.rtf"; HANDLE LicenceHandle = NULL; char LicenceBuffer[8192]; LicenceHandle = CreateFile(LicenceFolder.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, NULL, NULL); unsigned long nCharsRead = 0; ReadFile(LicenceHandle, LicenceBuffer, 8192, &nCharsRead, NULL); CloseHandle(LicenceHandle); LoadLibrary( "riched20.dll" );
Meine Richedit Control:
HWND Myhwnd = NULL; Myhwnd = CreateWindowEx(WS_EX_STATICEDGE, RICHEDIT_CLASS, LicenceBuffer, WS_CHILD | WS_VISIBLE | WS_VSCROLL | ES_MULTILINE | ES_READONLY, 205, 70, 380, 175, hwnd, (HMENU)IDC_LICENCE_LISTBOX, hAppInstance, NULL);
Dann wollte ich mit
std::string CleanBuffer = ""; SendMessage(Myhwnd, WM_SETTEXT, 0, (long)CleanBuffer.c_str()); SendMessage(Myhwnd, EM_SETTEXTMODE, TM_RICHTEXT, 0 ); SendMessage(Myhwnd, WM_SETTEXT, 0, (long)LicenceBuffer);
den Text in die Control laden. Das Problem ist, das nichts in der Control zu sehen ist. Kann mir einer von euch Weiterhelfen (Ich bin kein Profi Programmierer -> erst 1 Jahr Erfahrung)
Vielen Dank
RaquarPS.: wenn ich eine .txt Datei verwende funktioniert alles Perfekt nur sind dann natürlich alle Formatierungen verloren.
-
Versuch mal WM_SETTEXTEX.
-
Danke,
aber in der MSDN steht nichts über WM_SETTEXTEX.
cu
Raquar
-
WebFritzi meinte EM_SETTEXTEX. Man kann sich bei den ganzen Messages halt schnell mal verbuchseln ...
[ Dieser Beitrag wurde am 09.12.2002 um 15:02 Uhr von -King- editiert. ]
-
Huuups...
-
kein Problem,
aber ich kann auch EM_SETTEXTEX nicht finden(bekomme die fehlermeldung:
error C2065: 'EM_SETTEXTEX' : undeclared identifier).cu
Raquar
-
Hast du auch die Header-Datei zum RichEdit2-Control inkludiert?
-
ich habe "RICHEDIT.H" inkludiert. Soweit mir bekannt ist dort version 1 und 2 definiert.
-
Hmm, nach MSDN ist EM_SETTEXTEX in RichEdit.h definiert...
-
ich hab es gefunden! (MSDN im Internet, meine sind wohl veraltet). Visual Studio meckert jedoch immer noch. ich werde es mir morgen noch mal genauer ansehen
danke Raquar
-
Dann ist wohl ein PSDK Update fällig