gpt4 book ai didi

c++ - 使用最大日期时的 COleDateTime 行为

转载 作者:太空宇宙 更新时间:2023-11-04 13:09:47 25 4
gpt4 key购买 nike

我试图理解我在调用时遇到的 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,第 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);
...

最佳答案

看起来 DateTime 选择器控件在您调用 GetTime() 时没有正确初始化。

尝试运行以下代码片段,看看它是否按预期工作:

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 是错误的

关于c++ - 使用最大日期时的 COleDateTime 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40465029/

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