次のコードを使用して、タイム ピッカー コントロール (Win32 クラス名SysDateTimePick32) の形式を設定し、時刻を米国英語形式のみで表示します。
LCID lcid = MAKELCID(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), SORT_DEFAULT));
TCHAR buffFmt[200] = {0};
GetLocaleInfo(lcid, LOCALE_STIMEFORMAT, buffFmt, SIZEOF(buffFmt));
TRACE(buffFmt); //"h:mm:ss tt"
::SendMessage(m_hWnd, DTM_SETFORMAT, 0, (LPARAM)buffFmt);
米国英語のユーザー アカウント用にセットアップされた Windows 7 で実行すると、コントロールは次のようになります。

しかし、ドイツ語の形式に設定されたユーザー アカウントを使用して Windows 7 で実行すると、次のようになります。

コントロールは次のようになります (AM/PM の部分がありません):

どちらの場合も、フォーマット文字列は「h:mm:ss tt」であることに注意してください。これは、このページttによると、AM/PM 部分を表す必要があることを意味します。
これを修正する方法はありますか?