MFC多语言实现的坑

简述下使用资源StringTable实现MFC多语言的坑。

SetThreadLocale会影响LoadString()的语言选择,所以不能用LoadString(),一旦你界面为中文,但是Windows的地区设置为英文就显示???了。

另外SetUIThread也不能用,微软说了,不能用这2个函数来设置用户语言,所以网上一些文章是错的。

比如这个兄弟:MFC的多国语言界面的实现 - 闲云鹤 - 博客园

正确的做法是使用 FindResourceEx函数,这里做了一个很好的例子:

如何使用 LoadResource 加载字符串表中的字符串(MUI)

唯一不足是,你需要到项目,属性,资源,命令行,添加“-n”,这样资源字符串就会自动多一个\0出来,试试吧。

本文为3YL原创,转载无需联系,但请注明来自labisart.com。

原创文章不易,如果觉得有帮助,可打赏或点击右侧广告支持:

查看打赏记录

发表评论请遵守党国法律!后台审核后方可显示!
  • 最新评论
  • 总共0条评论
  • Blog v1.1© 2024 labisart.com 版权所有 | 联系:labartwork@163.com