CDateTimeCtrl控件与系统时间获取,比较结果相等则触发事件,该怎么解决
CDateTimeCtrl控件与系统时间获取,比较结果相等则触发事件
CDateTimeCtrl 控件关联变量m_timer
定义CTime t = CTime::GetCurrentTime(); 获取系统时间
定义CTime mtime;m_timer.GetTime(mtime);获取控件时间
比较m_timer 跟t 表示的时间:
if(mtime.Format("%H%M%S") == t.Format("%H%M%S")){
MessageBox(_T("alarm"));
}
编译通不过,请纠错或有没其它解,目的是定时触发某事件,如设定15点时弹出消息框。
------解决方案--------------------
CDateTimeCtrl 控件关联变量m_timer
定义CTime t = CTime::GetCurrentTime(); 获取系统时间
定义CTime mtime;m_timer.GetTime(mtime);获取控件时间
比较m_timer 跟t 表示的时间:
if(mtime.Format("%H%M%S") == t.Format("%H%M%S")){
MessageBox(_T("alarm"));
}
编译通不过,请纠错或有没其它解,目的是定时触发某事件,如设定15点时弹出消息框。
------解决方案--------------------
- C/C++ code
m_timer.GetWindowText(strTimeStart);
------解决方案--------------------
CTime类重载了operator == 操作符
- C/C++ code
bool operator ==( CTime time ) const throw( ); bool operator !=( CTime time ) const throw( ); bool operator <( CTime time ) const throw( ); bool operator >( CTime time ) const throw( ); bool operator <=( CTime time ) const throw( ); bool operator >=( CTime time ) const throw( );
------解决方案--------------------
你这个时间控件关联的变量m_timer是什么类型哦? 要是CTime类型直接就m_timer.Format("%H%M%S");还搞什么CTime mtime; m_timer.GetTime(mtime); 这个肯定有问题啊.
------解决方案--------------------
UpdateData(TRUE);刷新一下你定的时间,然后直接比较两个时间:
CDateTimeCtrl控件关联变量CTime m_timer;
CTime t = CTime::GetCurrentTime();
if(m_timer.Format("%H%M%S") == t.Format("%H%M%S"))
{
MessageBox(_T("alarm"));
}
------解决方案--------------------
直接比就是了
- C/C++ code
CTime mTime,currentTime;; m_time_end.GetTime(mTime); //m_time_end为CDateTimeCtrl控件变量 currentTime= currentTime.GetCurrentTime(); if (mTime == currentTime) { AfxMessageBox(_T("==")); } else { AfxMessageBox(_T("!=")); }
------解决方案--------------------
上面第一句多了个分号,
- C/C++ code
CTime mTime,currentTime; m_time_end.GetTime(mTime); //m_time_end为CDateTimeCtrl控件变量 currentTime= currentTime.GetCurrentTime(); if (mTime == currentTime) { AfxMessageBox(_T("==")); } else { AfxMessageBox(_T("!=")); }