3

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

Windows 设置有 2 种“风格”:LTR 或 RTL。也就是说,GUI(按钮、窗口控件、菜单等)从左到右或从左到右显示。

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

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

LOCALE 不是正确的答案!

本地与日期格式、千位分隔符、UI 语言和其他语言/文化特定设置有关,但在 Windows 中,区域设置不会影响 UI 方向。

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

4

3 回答 3

3

BOOL GetProcessDefaultLayout(DWORD *pdwDefaultLayout) 或者 DWORD GetLayout(HDC hdc)

于 2012-08-31T06:58:41.473 回答
2

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

if (GetWindowLong(FindWindow(_T("HHTaskBar"), NULL), GWL_EXSTYLE) != 0)
    //it's RTL
于 2012-05-01T04:01:30.937 回答
-1

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

于 2012-04-30T23:29:26.157 回答