MFC多语言实现方法

1、字符放在DLL资源文件中,切换资源模块(程序默认使用exe模块资源)函数

实现要点:spa

新建一个只包含资源的DLL。经过函数AfxSetResourceHandle设置资源模块。.net

示意代码为:线程

       AfxSetResourceHandle(LoadLibrary("english.dll"));blog

Cstring strMsg;ci

strMsg.LoadString(ID_TITLE);资源

SetWindowText(strMsg);get

见例子MulLanguage_dll.rarstring

2、字符放在EXE资源文件中,选择对应的语言资源。原理

实现要点:

新建多个ID相同,语言不一样的资源。

经过SetThreadLocale设置当前线程使用语言。

示意代码:

SetThreadLocale(MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_US));

CString strMsg;

strMsg.LoadString(ID_TITLE);

SetWindowText(strMsg);

     例子:MulLanguage_rc.rar

3、字符放在INI文件中。

实现要点:

同种语言字符放在单独的文本,经过切换文件方式切换语言。

优势:增长一种新语言,只需增长相应的语言的文件。

缺点:DLL模块中的字符转换,字符ID命名。

CString strMsg;

GetPrivateProfileString(…);

SetWindowText(strMsg);

见例子MulLanguage_ini.rar

 

综合上面三种方法,从原理上看实际上是同一种方法,获取相应语言下的字符,再显示字符,不一样之处是字符存放位置不一样。字符能够存放在DLL资源中,exe资源中,文本文件中。相应地获取字符方式也不一样。

http://blog.csdn.net/John_Yang/article/details/5549400

相关文章
相关标签/搜索