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

相關文章
相關標籤/搜索