POPCAPFramework(SexyApp)对中文的支持

注意项目编译选项:使用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. 其它类似问题,按照以上方案修改即可