2009-09-24 61 views
3

我的应用程序用于使用MFC CEdit控件,我们对宽字符(Unicode)字符串没有问题。切换到CRichEditCtrl后,似乎不再支持Unicode。汉字变成“??”等等。我已经读过CRichEditCtrl使用了RichEdit *,我已经尝试过投射指针,但没有任何效果。如何将Unicode支持添加到CRichEditCtrl?

我以为它可能是字体,但我可以使用ALT键方法将Unicode编码写入控件中,只要它们保存到模型中并写回,它们就是“????”。

是否有隐藏的属性某处,当初始化启用Unicode的对话框时,我必须执行一些手动设置?

回答

5

我发现MFC自动使用RichEdit 1.0。除非使用RichEdit 2.0,3.0或4.0实现,否则富文本编辑不支持真正的Unicode支持。我能够手动更改资源文件中的属性:将RichEdit 2.0(具有Unicode支持)的类名从“RICHEDIT”更改为“RichEdit20W”。

瞧! Unicode支持!

+0

奇怪!您正在使用哪种版本的VC,MFC,SDK。 RichEdit20W一直是默认的。 – 2009-09-25 15:12:56

+0

使用Visual C++,2005,无论MFC库带着什么。 – 2009-09-28 16:49:56