MFC多语言实现方法
来源:互联网 发布:中国税务网络大学ipad 编辑:程序博客网 时间:2024/05/16 07:49
我们公司目前软件大多数用MFC单文档实现,前段时间为了海外扩展,要求所以软件采用多语言。
因此我给下属下了一个命令,就是归纳多语言实现方式,总结最优实现方式。
一共有四种方法:先介绍常规的前三种。
例子在资源里面“MFC多语言实现方法”。
需要转换语言的地方有:
1、程序界面:菜单,控件标签等。
2、提示字符串等。
一、字符放在DLL资源文件中,切换资源模块(程序默认使用exe模块资源)。
实现要点:
新建一个只包含资源的DLL。通过函数AfxSetResourceHandle设置资源模块。
示意代码为:
AfxSetResourceHandle(LoadLibrary("english.dll"));
Cstring strMsg;
strMsg.LoadString(ID_TITLE);
SetWindowText(strMsg);
见例子MulLanguage_dll.rar
二、字符放在EXE资源文件中,选择对应的语言资源。
实现要点:
新建多个ID相同,语言不同的资源。
通过SetThreadLocale设置当前线程使用语言。
示意代码:
SetThreadLocale(MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_US));
CString strMsg;
strMsg.LoadString(ID_TITLE);
SetWindowText(strMsg);
例子:MulLanguage_rc.rar
三、字符放在INI文件中。
实现要点:
同种语言字符放在单独的文本,通过切换文件方式切换语言。
优点:增加一种新语言,只需增加相应的语言的文件。
缺点:DLL模块中的字符转换,字符ID命名。
CString strMsg;
GetPrivateProfileString(…);
SetWindowText(strMsg);
见例子MulLanguage_ini.rar
综合上面三种方法,从原理上看其实是同一种方法,获取相应语言下的字符,再显示字符,不同之处是字符存放位置不同。字符可以存放在DLL资源中,exe资源中,文本文件中。相应地获取字符方式也不同。
http://download.csdn.net/source/3342781
- MFC多语言实现方法
- MFC多语言实现方法
- MFC多语言实现方法
- MFC多语言实现的两种方法
- 实现MFC编译时多语言方案
- MFC - 资源文件实现多语言界面
- 实现MFC编译时多语言方案
- MFC 多语言环境的实现
- 在 MFC SDI 程序中实现多语言程序界面
- MFC以资源形式实现多语言版本
- MFC 多语言支持
- MFC 多语言 本地化
- MFC多语言开发
- MFC工具栏实现多种方法
- 用C语言实现MFC库函数GetPrivteProfileString
- 实现多语言开发方法的总结?
- vs2008.net多语言实现方法
- Qt 多语言的实现方法
- 柔性事务
- PHP扩展调用so动态链接库(1)
- C-state
- Unity笔记 资源加载 内存优化
- 实战开发(一)注册
- MFC多语言实现方法
- Robotium 专题(一):Robotium 测试---正确地为安装包重新签名
- 励志的英语句子
- kafka集群搭建
- Algorithms—102.Binary Tree Level Order Traversal
- 我所认识的ACPI
- 打开eclipse中文件所在目录
- HDU-1090-A+B for Input-Output Practice (II)(骗访问量的)
- 计算机视觉(ComputerVision, CV)相关领域的网站链接