Ich habe Probleme, ein RichEdit-Steuerelement zur Anzeige von Unicode-RTF-Text zu verwenden. Meine Anwendung ist Unicode, so dass alle Zeichenfolgen sind wchar_t Zeichenfolgen.
Wenn ich das Steuerelement als "RichEdit20A" erstelle, kann ich z. B. SetWindowText verwenden, und der Text wird mit der richtigen Formatierung angezeigt. Wenn ich das Steuerelement als "RichEdit20W" erstelle, wird bei Verwendung von SetWindowText der Text wortwörtlich angezeigt, d.h. der gesamte RTF-Code wird angezeigt. Dasselbe passiert, wenn ich den Parameter EM_SETTEXTEX verwende, der die Codepage 1200 angibt, die laut MSDN verwendet wird, um Unicode anzuzeigen.
Ich habe versucht, die StreamIn-Funktion zu verwenden, aber das scheint nur zu funktionieren, wenn ich ASCII-Text einstreue. Wenn ich in Widechars streame, erhalte ich leeren Text im Steuerelement. Ich verwende die SF_RTF|SF_UNICODE-Flags, und MSDN weist darauf hin, dass diese Kombination möglicherweise nicht zulässig ist.
Was ist also zu tun? Gibt es eine Möglichkeit, Widechars in einen RichEdit zu bekommen, ohne die RTF-Interpretation zu verlieren, oder muss ich sie kodieren? Ich habe darüber nachgedacht, es mit UTF-8 zu versuchen, oder vielleicht die Kodierungsmöglichkeiten in RTF zu nutzen, aber ich bin mir nicht sicher, was die beste Wahl ist.