百度空间 | 百度首页 
 
查看文章
 
POPCAPFramework(SexyApp)对中文的支持
2009-10-05 16:42

注意项目编译选项:使用MBCS和_USE_WIDE_STRING

设置了这两个选项,所有默认的std::string都是本地编码的多字节字符串,SexyString是utf16编码的宽字符字符串

SexyApp内部对中文的处理是针对wstring的,因此可以认为基本没有问题,只需要修改显示相关代码和字符串的入口代码即可,举几个例子

1. 字体

默认的SysFont用的是ANSI_CHARSET,会导致无论创建什么中文字体都是宋体,需要将ANSI_CHARSET改为GB2312_CHARSET,这样设置的字体才有效

2. 中文输入

比如EditWidget中,处理paste的时候,调用的是

SexyString aBaseString = StringToSexyString(mWidgetManager->mApp->GetClipboard());

这是有问题,需要将GetClipboard的结果用MultiByteToWideString转换为wstring

此外,EditWidget对于默认输入的字符有一个uTheChar<=range的判断,而range的最大值是255,对于中文显然不适用,去掉即可。

3. 其它类似问题,按照以上方案修改即可


类别:技术 | 添加到搜藏 | 浏览() | 评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu