今天一直很疑惑手機的語言,其實是對API函數GetSystemDefaultLCID的不解。
今天在實際中終于摸清楚了該值是怎么一回事,原來他取得是設置中區域設置中的語言標號,而非手機界面的語言標號。
怎么判斷呢?
我是通過下面的方式進行的。
LCID lcid = GetSystemDefaultLCID();
WORD PriLan = PRIMARYLANGID(lcid);
WORD SubLan = SUBLANGID(lcid);

switch (PriLan)

{
case LANG_CHINESE:

{
if (SubLan == SUBLANG_CHINESE_SIMPLIFIED)

{
MessageBox(GetForegroundWindow(), _T("simple chs"), _T("note"), MB_OK);
}
else if (SubLan == SUBLANG_CHINESE_TRADITIONAL)

{
MessageBox(GetForegroundWindow(), _T("traditional chs"), _T("note"), MB_OK);
}
}
break;

case LANG_ENGLISH:

{
MessageBox(GetForegroundWindow(), _T("English"), _T("note"), MB_OK);
}
break;
default:

{
MessageBox(GetForegroundWindow(), _T("others"), _T("note"), MB_OK);
}
break;
}
這個有什么作用呢?Mobile手機更改語言設置后,其實對手機顯示的語言沒有多大影響,只是提示框框,菜單什么的可能會出現指定的文字,排版什么的按這種語言。
那么界面顯示的語言怎么獲得呢?利用GetUserDefaultUILanguage,判斷方式可同上。
不錯吧!
posted on 2009-06-18 16:38
Sandy 閱讀(373)
評論(0) 編輯 收藏 引用 所屬分類:
Windows Mobile