gpt4 book ai didi

c++ - 时间选择器控件的 DTM_SETFORMAT 不支持格式说明符

转载 作者:行者123 更新时间:2023-11-28 07:34:33 26 4
gpt4 key购买 nike

我使用以下代码设置时间选择器控件的格式(具有 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 上运行它时,控件看起来像这样:

enter image description here

但是如果我在 Windows 7 上运行它并且用户帐户设置为德语格式:

enter image description here

控件看起来像这样(缺少 AM/PM 部分):

enter image description here

请注意,在这两种情况下,格式字符串都是“h:mm:ss tt”,根据this page表示 tt 应该代表 AM/PM 部分。

知道如何解决这个问题吗?

最佳答案

在“区域和语言”控制面板对话框中,单击“其他设置”按钮,然后单击“时间”选项卡。 AM符号和PM符号设置了什么?

在我的 Windows 7 机器上,格式设置为德语,这些都是空字符串。日期时间控件从用户当前的区域设置中获取要显示的字符串,因此即使您强制它以格式字符串显示 AM/PM,它实际上也不会为这部分显示任何内容。

关于c++ - 时间选择器控件的 DTM_SETFORMAT 不支持格式说明符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17004308/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com