mfc中关于多语言资源的使用方法

关于多语言资源的使用方法:
1.常用字符串应放在一个头文件中,如Namestr.h
 
#ifndef NAMESTR_H
#define NAMESTR_H
 
#ifdef ENGLISH
#define USEINFO "use info"
#else
#define USEINFO "用户信息"
#endif
 
2.资源文件
方法一:在项目名上右击,选添加新项,新建一个项目。
方法二:拷出原来的资源文件(.rc),重命名后添加。
如建立了如下资源文件:NameEng.rc  NameChs.rc
 
3.使用
a.建立多个解决方案配置。
如:Chinese和Englsih
b.在属性配置页中,选择对应的 解决方案配置
如ENGLISH
 
在C/C++的编译选项中 预处理器定义  加入:ENGLISH
对应为Chinese时,则可以选择加入CHINESE(即不定义ENGLISH)
 
在属性配置页的资源项中选项对应的区域性(其实该设置对最后使用的资源文件没有影响)
 
4.重要的一步
rc.exe是用来编译资源文件的。
命令行格式如下:
rc.exe /l 0x804   /fo"./obj/Chinese/Name.res"  NameChs.rc
 
说明:
/1 0X804:表示选择对应的区域性,Ox804表示中文(中国)
/fo"./obj/Chinese/ipmsg.res":表示编译后的资源目标文件名和保存路径。(该选项在属性页-->资源-->资源文件名中设定)
NameChs.rc:由表示选择编译那一个资源文件。
 
现在要做的就是区分开NameChs.rc(对应Chinese)和NameEng.rc(对应Englsih)
 
在解决方案资源管理器中,可以看到NameChs.rc和NameEng.rc。
在NameChs.rc上右击,会出来一个NameChs.rc的属性页,在配置的下拉框中选择配置ENGLISH,在“常规”-->"从生成中排除"项选为是,这样就将该资源文件从English中排除了。
依上,保证每个解决方案配置只包含对应的资源文件,而将其它的文件排除即可。
 
 
小技巧:这样的方法也适应于不同的cpp文件,这就是为什么从下上下载的源程序包中存在有编译错误的cpp文件,但却可以编译,而自己新建空白项目,将所以现有项(而不是不添加有语法错误的cpp文件)添加到新建的项目中去时,却不能编译的原因所在。
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: MFC(Microsoft Foundation Class)多语言切换可以通过以下几种方法实现。 1. 使用资源文件:MFC支持使用不同的资源文件来存储不同语言的文本、图像等资源。首先,创建一个基本语言资源文件(例如英文),然后创建其他语言资源文件,并将其命名为相应的语言代码(例如文为zh-CN)。接下来,在代码通过加载对应的资源文件来实现多语言切换。 2. 使用语言库:使用第三方多语言库可以更方便地实现多语言切换。这些库可以根据当前系统的语言设置自动加载对应的语言资源,并在界面上显示正确的文本。常见的多语言库包括GetText、Qt Linguist等。 3. 使用资源文件字符串表:在资源文件创建一个字符串表,其包含所有需要多语言切换的文本。然后,在代码根据用户设置的语言代码来加载对应的字符串,并在界面上显示。 4. 动态加载语言资源:通过编写一段代码来动态加载语言资源,将对应语言的文本赋值给相应的控件,并刷新界面。这种方法需要提前准备好不同语言的文本资源,并通过代码控制切换。 无论使用哪种方法,都需要在代码添加逻辑来切换语言,可以通过用户界面设置、系统语言设置或其他方式来确定使用哪种语言。在切换语言后,需要重新加载相应的语言资源,并刷新界面以显示新的语言。 ### 回答2: MFC语言切换的实现方法主要有以下几种: 1. 使用资源文件:在MFC应用程序,可以将不同语言的文本信息存储在不同的资源文件,然后通过加载不同的资源文件来实现语言切换。每个资源文件都对应一种语言,通过读取不同的资源文件,可以获取相应语言的文本信息,并将其显示在界面上。 2. 使用国际化库:可以使用一些开源的国际化库,如gettext等,来实现MFC应用程序的多语言切换。这些库提供了一些函数和接口,可以根据当前的语言设置,从对应的语言文件获取文本信息,并将其显示在界面上。 3. 手动切换语言:可以在代码手动实现语言切换的逻辑。通过在程序定义一些全局变量来表示当前的语言设置,然后根据不同的语言设置,从相应的语言文件获取对应的文本信息,并将其显示在界面上。当需要切换语言时,可以通过用户的操作或者设置来改变当前的语言设置。 无论使用何种方法,都需要在应用程序的各个界面和对话框统一使用资源文件或者函数来获取文本信息,从而实现整个应用程序的多语言切换。同时,还需要注意对齐文本的布局和调整控件的大小,以适应不同语言的文本长度和字符宽度的差异。 ### 回答3: MFC(Microsoft Foundation Classes)多语言切换可以通过以下几个步骤实现: 1. 提前准备好多语言资源文件:对于每一种语言,创建对应的字符串表和对话框资源文件,并为每个控件提供相应的文字和提示信息。 2. 在MFC应用程序的初始化过程,根据用户所选语言加载对应的资源文件。可以通过读取系统的语言设置或者用户自定义选择来确定加载哪种语言资源文件。 3. 在应用程序的实例化和初始化完成之后,在每一个窗口的初始化过程,调用相应的函数来切换语言。例如,可以使用 AfxSetResourceHandle 函数来设置当前语言资源句柄。 4. 在对话框或窗口类重写虚函数 OnIniDialog 或 OnInitInstance,在函数调用对应的语言切换函数,例如 SetWindowText 或 SetDlgItemText 来更新窗口控件的文本。 5. 如果需要切换界面语言而不需要重启应用程序,可以在对话框的响应事件或者菜单项的点击事件调用相应的语言切换函数。例如,可以使用 SetWindowText 或 SetDlgItemText 来更新当前对话框控件的文本。 6. 使用资源编辑器,为每个对话框和控件设置唯一的资源ID。然后,在代码使用相应的ID来获取和设置对应的文本。可以通过调用 GetDlgItemText 或 SetDlgItemText 函数来实现。 通过以上步骤,我们可以在MFC应用程序实现多语言切换,让用户能够根据自己的需求选择使用不同的语言界面。这样可以提高用户体验,使应用程序更具国际化和多元化特色。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值