今天一直很疑惑手机的语言,其实是对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 阅读(349)
评论(0) 编辑 收藏 引用 所属分类:
Windows Mobile