(我使用的是Windows XP,但问题与所有/任何Windows版本相关)
Windows设置有2" flavoers":LTR或RTL。 意思是,GUI(按钮,窗口和控件,菜单等)从左到右或从左到右显示。这主要与希伯来语和阿拉伯语版本的windows有关。
我的程序需要找出显示其小部件的默认行为。
LOCALE不是正确答案!
本地属于日期格式,千位分隔符,UI语言和其他语言/文化特定设置,但在Windows中,语言环境不会影响UI方向。
如何找出(注册表,环境等)操作系统的方向?
答案 0 :(得分:2)
在系统任务栏上检查WS_EX_LAYOUTRTL
GetWindowLong
,找出开始菜单的位置,这将为您提供操作系统文字方向:
if (GetWindowLong(FindWindow(_T("HHTaskBar"), NULL), GWL_EXSTYLE) != 0)
//it's RTL
答案 1 :(得分:2)
BOOL GetProcessDefaultLayout(DWORD *pdwDefaultLayout)
要么
DWORD GetLayout(HDC hdc)
答案 2 :(得分:0)
如果使用带有SM_MIDEASTENABLED的nIndex的GetSystemMetrics,如果系统启用了希伯来语和阿拉伯语,它将返回非零值,如果没有,则返回0。