MFC多国语言

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hhhuang1991/article/details/83822074

关于MFC多国语言操作流程,请参考下面两篇博客
MFC多国语言界面的实现-简单方式
MFC多国语言界面的实现-DLL方式
解释:
1、Win7系统中无法使用SetThreadLocale/GetThreadLocale,应该改为SetThreadUILanguage/GetThreadUILanguage。

2、当已经生成多国语言的资源后,后续要在资源中继续添加内容,比如增加菜单条目或添加字符串资源,那么如何操作才能保证添加资源后,多国语言的资源内容ID和消息响应保持一致?
如果我们在主语言资源中添加一个菜单后,我们应该在Resource.h中,将这个菜单的ID的宏定义复制到其他语言资源的Resource中去,然后在界面中选择对应的资源ID,而不是简单在界面中输入宏名称,如下图所示,
在这里插入图片描述
如图所示,我们需要将DlgMutliLang工程中Resource.h的#define ID_TEST2 32780复制到DlgMutliLang_US工程的资源头文件Resource.h中,然后再将菜单的ID选择为ID_TEST2,如下图所示,
在这里插入图片描述
3、如何保证系统提供的对话框(AfxMessageBox,MessageBox,CFileDialog)中的控件名称也能切换中英文?
AfxMessageBox/CFileDialog : 获取控件的ID,然后手动设置成英文,网上的例子没有测试成功。
MessageBox:可以改用MessageBoxEx(), 最后一个参数,可以设置LCID

猜你喜欢

转载自blog.csdn.net/hhhuang1991/article/details/83822074