使用最大日期时的COleDateTime行为
COleDateTime behaviour when using maximum date
我试图理解一个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)
,但根据文档,它是一个有效的日期。
提前感谢!
EDIT:方法GetTime
在用户更改DatePicker时被调用。
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);
您还没有提供为Date Time Picker设置输入格式的代码。您需要使用m_wndDate.SetFormat(_T("dd/MM/yyyy"));
来设置格式。请注意,它是区分大小写的。所以你的格式DD/MM/YYYY是错误的
相关文章:
- 理解boost::asio-async_read在无需读取内容时的行为
- 模板-模板参数推导:三个不同的编译器三种不同的行为
- arr[-1]在c++中的奇怪行为
- 继承期间显示未知行为的子类
- 如何在c++中使用引用实现类似python的行为
- G锁定铸造到基础上会释放模拟行为
- 在C++中对T*类型执行std::move的意外行为
- std::当在256字节边界上写入整数时,流的奇怪行为
- 不知道某个东西是否被忽略会引入未定义的行为吗
- 奇怪的构造函数行为
- 重载运算符new[]的行为取决于析构函数
- 不同语言中相同代码的不同行为
- 处理除以零会导致<csignal>意外行为
- 试图理解类对象的行为
- c++11评估顺序(未定义的行为)
- 从结构寻址时,MMAP变量的行为很奇怪
- 我可以做些什么来消除或最小化这种将提供相同功能和行为的代码重复
- 读取文件时运行时的未知行为
- strncpy之后的char数组的错误行为
- 使用最大日期时的COleDateTime行为