我试图了解我打电话时遇到的ASSERT
COleDateTime time;
this->m_wndDate.GetTime(time);
和我的datePicker中的日期是31/12/9999(格式DD / MM / YYYY)函数
BOOL CDateTimeCtrl::GetTime(_Out_ COleDateTime& timeDest) const
向我显示ASSERT(timeDest.GetStatus() == COleDateTime::valid); (winctrl5.cpp, line 181)
,但相应于文档,它是有效日期。
我无法理解为什么会这样。有没有人以前遇到过这个问题?
提前致谢!
编辑:当用户更改DatePicker时,会调用方法GetTime
。
ON_NOTIFY(DTN_DATETIMECHANGE, IDC_DATE, OnDatetimechangeDate)
...
void WDlgRelParamVar::OnDatetimechangeDate(NMHDR* pNMHDR, LRESULT* pResult)
{
LPNMDATETIMECHANGE pNMDATE = (LPNMDATETIMECHANGE)pNMHDR;
COleDateTime time;
this->m_wndDate.GetTime(time);
...
答案 0 :(得分:0)
在您调用GetTime()
时,看起来似乎没有正确初始化DateTime选择器控件。
尝试运行以下代码段,看它是否按预期工作:
COleDateTime dt(9999, 12, 31, 23, 59, 59);
COleDateTime::DateTimeStatus st = dt.GetStatus();
ASSERT(st == COleDateTime::valid);
您尚未提供设置日期时间选择器输入格式的代码。您需要使用m_wndDate.SetFormat(_T("dd/MM/yyyy"));
来设置格式。请注意它区分大小写。所以您的格式 DD / MM / YYYY错误。