【问题标题】:date and time picker problem, can't reset date or time日期和时间选择器问题,无法重置日期或时间
【发布时间】:2009-12-19 16:46:48
【问题描述】:

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

上面描述的问题是我第一次意识到它的方式,但它实际上要简单得多。我连续进行了两次 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 生效,后面的被忽略。

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

【问题讨论】:

  • 你好,什么语言和框架?
  • @Skurmedel:visual c++ 6.0,我可以检索修改后的日期/时间,但无法设置新的,无论用户做什么,控件都会保持冻结状态。
  • 我尝试处理 DTN-DATETIMECHANGE 并使用 SetWindowLong (hwnd,DWL_MSGRESULT,0) 返回零,这会导致控件中的日期时间设置为空白。我应该复制在 NMDATETIMECHANGE .st 某个地方找到的 SYSTEMTIME 吗?
  • 好的 :) 如果您不介意,我重新标记它。拥有语言标签会使其显示为未答复,并且可能会更快地为您提供帮助。
  • 我的意思是,它会在未回答的语言标签下突出显示,因为我认为很多人监控特定标签。

标签: c++ visual-c++ controls dialog datepicker


【解决方案1】:

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

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

日期/时间选择器的意外行为的交互存在问题:

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

【讨论】:

  • 谢谢!知道它在相同的环境中对你有用,让我弄清楚我做错了什么。这个问题原来是我从 tm 时间构建的 SYSTEMTIME 中的非法年份(我忽略了 1900 年的偏移量)。显然,如果 DTM-SETSYSTEMTIME 没有日期/时间,则 DTM-SETSYSTEMTIME 接受非法年份(并替换当前年份),但忽略具有非法年份的后续调用。如果 DTM-SETSYSTEMTIME 给了我一个错误或完全失败,我早就知道了。节日快乐!
  • 好吧,完整地说,DTM_SETSYSTEMTIME 接受第一个非法的 SYSTEMTIME 并忽略后续非法的但稍后会响应正确的 SYSTEMTIME。
猜你喜欢
  • 2021-08-15
  • 1970-01-01
  • 2011-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-14
  • 2011-12-02
  • 2012-09-11
相关资源
最近更新 更多