You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 01:26:04