2012-04-30 41 views
3

(我使用Windows XP,但问题是适用于所有/任何Windows版本)如何检测如果Windows安装RTL

Windows安装进来2“flavoers”:LTR或RTL。 意思是,从左到右或从左到右显示GUI(按钮,窗口控件,菜单等)。

这主要与希伯来语和阿拉伯语版本的Windows有关。

我的程序需要找出显示其小部件的默认行为。

LOCALE不是正确的答案!

本地属于日期格式,千位分隔符,UI语言和其他语言/文化特定设置,但在Windows中,语言环境不影响UI方向。

如何找出(注册表,环境等)操作系统的方向?

+0

HTTP:/ /blogs.msdn.com/b/oldnewthing/archive/2011/12/22/10250164.aspx –

+0

@HansPassant是不是只为一个给定的语言环境? –

+0

当然,就像系统区域设置一样。 –

回答

0

如何使用GetSystemMetrics的与SM_MIDEASTENABLED的参数nIndex,它会在系统是为希伯来语和阿拉伯语,0如果不启用返回非零值。

+0

不,这只是表示我可以正确读写。它没有提到关于GUI方向的任何信息。我的系统有LTR GUI,“你的”函数返回1(真)。 –

1

检查WS_EX_LAYOUTRTLGetWindowLong系统任务栏上找出开始菜单的位置,这将给你的OS文字方向:

if (GetWindowLong(FindWindow(_T("HHTaskBar"), NULL), GWL_EXSTYLE) != 0) 
    //it's RTL