MFC多语言实现方法
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
一、字符放在DLL資源文件中,切換資源模塊(程序默認(rèn)使用exe模塊資源)。
實(shí)現(xiàn)要點(diǎn):
新建一個(gè)只包含資源的DLL。通過(guò)函數(shù)AfxSetResourceHandle設(shè)置資源模塊。
示意代碼為:
?????? AfxSetResourceHandle(LoadLibrary("english.dll"));
Cstring strMsg;
strMsg.LoadString(ID_TITLE);
SetWindowText(strMsg);
見(jiàn)例子MulLanguage_dll.rar
二、字符放在EXE資源文件中,選擇對(duì)應(yīng)的語(yǔ)言資源。
實(shí)現(xiàn)要點(diǎn):
新建多個(gè)ID相同,語(yǔ)言不同的資源。
通過(guò)SetThreadLocale設(shè)置當(dāng)前線程使用語(yǔ)言。
示意代碼:
SetThreadLocale(MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_US));
CString strMsg;
strMsg.LoadString(ID_TITLE);
SetWindowText(strMsg);
???? 例子:MulLanguage_rc.rar
三、字符放在INI文件中。
實(shí)現(xiàn)要點(diǎn):
同種語(yǔ)言字符放在單獨(dú)的文本,通過(guò)切換文件方式切換語(yǔ)言。
優(yōu)點(diǎn):增加一種新語(yǔ)言,只需增加相應(yīng)的語(yǔ)言的文件。
缺點(diǎn):DLL模塊中的字符轉(zhuǎn)換,字符ID命名。
CString strMsg;
GetPrivateProfileString(…);
SetWindowText(strMsg);
見(jiàn)例子MulLanguage_ini.rar
?
綜合上面三種方法,從原理上看其實(shí)是同一種方法,獲取相應(yīng)語(yǔ)言下的字符,再顯示字符,不同之處是字符存放位置不同。字符可以存放在DLL資源中,exe資源中,文本文件中。相應(yīng)地獲取字符方式也不同。
http://blog.csdn.net/John_Yang/article/details/5549400
轉(zhuǎn)載于:https://my.oschina.net/u/555701/blog/56656
總結(jié)
以上是生活随笔為你收集整理的MFC多语言实现方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java网络编程 个人心得
- 下一篇: Oracle应用集群详解