我在对话框中使用了一个usoft日期时间选择器控件。我通过使用DTM-SETSYSTEMTIME将格式设置为“HH”:“mm”,“ddddMMMdd”,“yyyy”和当前本地日期&时间开始。如果用户更改控件中的任何字段,程序将无法使用DTM-SETSYSTEMTIME重置控件中的日期和时间,尽管SendMessage返回1.就我所知,对话框将任何通知返回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 2009-12-19 23:36:32
@Skurmedel:visual c + + 6.0,我可以检索修改的日期/时间,但我不能设置一个新的,该控件保持冻结在任何用户做。 – 2009-12-20 13:04:11
我试着处理DTN-DATETIMECHANGE并用SetWindowLong(hwnd,DWL_MSGRESULT,0)返回零,导致控件中的日期时间设置为空白。我应该复制在NMDATETIMECHANGE .st找到的SYSTEMTIME吗? – 2009-12-20 17:46:31