如何检测 Windows 安装是否为 RTL

问题描述 投票:0回答:3

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

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

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

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

LOCALE 不是正确答案!

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

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

windows winapi right-to-left
3个回答
3
投票

2
投票

在系统任务栏上检查

WS_EX_LAYOUTRTL
GetWindowLong
,找出开始菜单的位置,这将为您提供操作系统文本方向:

if (GetWindowLong(FindWindow(_T("Shell_TrayWnd"), NULL), WS_EX_LAYOUTRTL) != 0) {
    // It's RTL
}

-1
投票

如何将 GetSystemMetrics 与 nIndex 为 SM_MIDEASTENABLED 一起使用,如果系统启用了希伯来语和阿拉伯语,它将返回非零,否则返回 0。

© www.soinside.com 2019 - 2024. All rights reserved.