3

(私は Windows XP を使用していますが、質問はすべて/任意の Windows バージョンに関連しています)

Windows セットアップには、LTR または RTL の 2 つの「フレーバー」があります。つまり、GUI (ボタン、ウィンドウのコントロール、メニューなど) は左から右、または左から右に表示されます。

これは主に Windows のヘブライ語版とアラビア語版に関連しています。

私のプログラムは、ウィジェットを表示するデフォルトの動作を見つける必要があります。

LOCALE は正解ではありません。

ローカルは、日付形式、桁区切り記号、UI 言語、およびその他の言語/カルチャ固有の設定に関係しますが、Windows では、ロケールは UI の方向には影響しません。

OS の方向性 (レジストリ、env など) を調べるにはどうすればよいですか?

4

3 に答える 3

3

BOOL GetProcessDefaultLayout(DWORD *pdwDefaultLayout) また DWORD GetLayout(HDC hdc)

于 2012-08-31T06:58:41.473 に答える
2

システム タスクバーの をチェックしWS_EX_LAYOUTRTLGetWindowLong、スタート メニューが配置されている場所を確認します。これにより、OS のテキストの方向がわかります。

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

SM_MIDEASTENABLED の nIndex で GetSystemMetrics を使用するのはどうですか。システムがヘブライ語とアラビア語に対応している場合は 0 以外を返し、そうでない場合は 0 を返します。

于 2012-04-30T23:29:26.157 に答える