gpt4 book ai didi

c++ - 日期和时间选择器问题,无法重置日期或时间

转载 作者:行者123 更新时间:2023-11-28 08:31:15 26 4
gpt4 key购买 nike

我在对话框中使用 usoft 日期时间选择器控件。我首先使用 DTM-SETSYSTEMTIME 将格式设置为 "HH':'mm' 'ddddMMMdd','yyyy"和当前本地日期和时间。如果用户更改控件中的任何字段,程序无法使用 DTM-SETSYSTEMTIME 重置控件中的日期和时间,尽管 SendMessage 返回 1。据我所知,对话框对任何通知返回假(零)它收到有关控制权。

上面描述的问题是我最初是如何意识到它的,但实际上要简单得多。我连续执行了两次 DTM-SETSYSTEMTIME 调用,只有第一个生效。即使返回的状态为 1,以下示例中的第二个也不会生效。

        hwnd = GetDlgItem (hDlg, IDC_SUN_STAT_DATE_TIME);
Status = SendMessage (hwnd, DTM_SETFORMAT,0,(LPARAM)"HH':'mm' 'ddddMMMdd','yyyy");
Status = SendMessage (hwnd, DTM_SETSYSTEMTIME,GDT_VALID, (LPARAM)&systimeTime);
systimeTime.wHour += 2;
Status = SendMessage (hwnd, DTM_SETSYSTEMTIME,GDT_VALID, (LPARAM)&systimeTime);

好像只有第一个DTM-SETSYSTEMTIME生效了,后面的都忽略了。

我必须做什么才能更改/重置控件中的日期/时间?或者(更有可能)我做错了什么?

最佳答案

我已将您的代码剪切并粘贴到我自己的 Visual C++ 6.0 程序中,它非常适合我。如果我注释掉第二个 DTM_SETSYSTEMTIME,我会得到一个早两个小时的时间。您没有向我们展示代码中的某些内容。

编辑:既然你选择了这个答案,我不妨让它准确一点。我已经用我自己的程序验证了你的评论。

您在与日期/时间选择器的意外行为交互时遇到问题:

  1. SYSTEMTIME 结构需要完整的 4 位数年份。
  2. 如果您使用带有无效 SYSTEMTIME 的 DTM_SETSYSTEMTIME,日期/时间选择器不会指示错误。
  3. 一旦您设置了无效的 SYSTEMTIME,日期/时间选择器将停止响应进一步的 DTM_SETSYSTEMTIME 消息。此外,它仍然返回,就好像它已正确处理消息一样。

关于c++ - 日期和时间选择器问题,无法重置日期或时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1933406/

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