下载 本文演示程序源代码 9KB
通常我们用VC++提供的RichEdit会碰到很苦恼的事情----中文乱码和单字节汉字
中文乱码一般可以用SetFont解决,而这个单字节汉字就非常的莫名其妙了,一旦出现单字节汉字,你每按一次backspace将只消除半个汉字,景象甚是恼人。
最终我向RichEdit2.0A靠拢了。RichEdit20a的汉字自动为WideChar,乱码和单字节汉字都不见了。
下面介绍迅速在自己的程序中使用RichEdit20a的方法:(以对话框程序为例)
在对话框的资源编辑器中选择Custom Control(就是有一个人头的....)
放到对话框上之后右键打开该控件属性,Class指定为 RichEdit20A
(至于style和ex_style自定,各种值可以通过spy++获得)
图: Custom 控件的属性页, Class为RichEdit20A
下面编译程序-----结果:程序自动退出了,why?没有AfxInitRichEdit( );?
不是的,跟我继续前进:
填加一个全局变量 HMODULE hMod;
在程序初始化开头: (比如CWinApp::InitInstance()开头)加上一句:
hMod = LoadLibrary( TEXT( "riched20.dll" ) );
在程序退出前:(比如CWinApp::ExitInstance()里)
FreeLibrary( hMod );
在编译程序,RichEdit20A显身了,没有乱码、单字节的汉字。
RichEdit20a还有其他特性,你自己发掘吧
Mission Impossible