(我使用的是 Windows XP,但问题与所有/任何 Windows 版本相关)
Windows 设置有 2 种“风格”:LTR 或 RTL。 也就是说,GUI(按钮、窗口控件、菜单等)是从左到右或从左到右显示的。
这主要与希伯来语和阿拉伯语版本的 Windows 相关。
我的程序需要找出显示其小部件的默认行为。
LOCALE 不是正确答案!
Local 涉及日期格式、千位分隔符、UI 语言和其他语言/文化特定设置,但在 Windows 中,区域设置不会影响 UI 方向。
如何找到(注册表、环境等)操作系统的方向?
WS_EX_LAYOUTRTL
和 GetWindowLong
,找出开始菜单的位置,这将为您提供操作系统文本方向:
if (GetWindowLong(FindWindow(_T("Shell_TrayWnd"), NULL), WS_EX_LAYOUTRTL) != 0) {
// It's RTL
}
如何将 GetSystemMetrics 与 nIndex 为 SM_MIDEASTENABLED 一起使用,如果系统启用了希伯来语和阿拉伯语,它将返回非零,否则返回 0。