春暖花开
雪化了,花开了,春天来了
posts - 149,comments - 125,trackbacks - 0
今天一直很疑惑手机的语言,其实是对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

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理