RichEditコントロールでUnicodeRTFテキストを表示するのに問題があります。私のアプリケーションはUnicodeなので、すべての文字列はwchar_t文字列です。
コントロールを「RichEdit20A」として作成すると、たとえばSetWindowTextを使用でき、テキストは適切な形式で表示されます。コントロールを「RichEdit20W」として作成すると、SetWindowTextを使用するとテキストが逐語的に表示されます。つまり、すべてのRTFコードが表示されます。EM_SETTEXTEXパラメーターを使用して、MSDNがユニコードを示すために使用されるとMSDNが指示するコードページ1200を指定した場合も、同じことが起こります。
StreamIn関数を使用してみましたが、これはASCIIテキストでストリーミングする場合にのみ機能するようです。widecharsでストリーミングすると、コントロールに空のテキストが表示されます。SF_RTF | SF_UNICODEフラグを使用していますが、MSDNはこの組み合わせが許可されていない可能性があることを示唆しています。
じゃあ何をすればいいの?RTFの解釈を失うことなくワイドチャーをRichEditに取り込む方法はありますか、それともエンコードする必要がありますか?UTF-8を試すか、RTFのエンコード機能を使用することを考えましたが、最適な選択が何であるかわかりません。