MFC AfxMessageBox按钮文本显示英文的问题求助
解决AfxMessageBox按钮文本始终为中文的问题
不用修改操作系统语言就能解决这个问题,试试下面几个方法:
修正.rc文件的语言配置语法
你当前的.rc文件代码写法有问题,条件判断和LANGUAGE语句需要分开,正确的配置应该是:// Chinese (Simplified, China) resources //#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS) //LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED //#endif #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US #endif如果不确定资源DLL的影响,可以暂时去掉条件判断,直接写
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US,编译后验证按钮文本是否变化。同步项目属性的资源语言设置
在Visual Studio的项目属性中,找到「资源」→「常规」→「资源语言」,选择「英语(美国)」。部分情况下项目向导的语言设置没同步到资源编译环节,手动设置这里能强制资源按英文编译。显式指定线程UI语言
MFC消息框的按钮文本会受当前线程的UI语言影响,哪怕资源是英文,线程语言为中文时系统会优先调用系统语言的按钮文本。可以在程序初始化函数(比如CxxxApp::InitInstance)里添加代码强制设置线程语言:SetThreadUILanguage(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));排查其他资源冲突
确认项目中没有其他.rc文件或资源片段单独设置了中文语言,比如一些自定义对话框资源可能硬编码了LANGUAGE参数,需要统一调整为英文配置。
内容的提问来源于stack exchange,提问作者Administrator
相关产品推荐
相关产品推荐

