如何检测Windows安装是否为RTL

时间:2012-04-30 23:03:04

标签: windows winapi right-to-left

(我使用的是Windows XP,但问题与所有/任何Windows版本相关)

Windows设置有2" flavoers":LTR或RTL。 意思是,GUI(按钮,窗口和控件,菜单等)从左到右或从左到右显示。

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

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

LOCALE不是正确答案!

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

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

3 个答案:

答案 0 :(得分:2)

在系统任务栏上检查WS_EX_LAYOUTRTL GetWindowLong,找出开始菜单的位置,这将为您提供操作系统文字方向:

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

答案 1 :(得分:2)

答案 2 :(得分:0)

如果使用带有SM_MIDEASTENABLED的nIndex的GetSystemMetrics,如果系统启用了希伯来语和阿拉伯语,它将返回非零值,如果没有,则返回0。