读书人

CDateTimeCtrl控件与系统时间获取比

发布时间: 2012-03-30 17:32:09 作者: rapoo

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点时弹出消息框。

[解决办法]

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("!="));    } 

读书人网 >VC/MFC

热点推荐