void CALLBACK CControlBase::TimerCallProc(UINT TimerID2, UINT msg, DWORD dwUser, DWORD dwa, DWORD dwb) { CControlBase *pControlBase = (CControlBase *)dwUser; if (pControlBase) { pControlBase->OnTimer(); } }
// 定时器消息 void CDlgPopup::OnTimer(UINT uTimerID) { //if(!::IsWindow(GetSafeHwnd())) return ; // 动画定时器 if(m_uTimerAnimation == uTimerID) { for (size_t i = 0; i < m_vecControl.size(); i++) { CControlBase * pControlBase = m_vecControl.at(i); if (pControlBase) { pControlBase->OnTimer(); } } } }
BOOL CControlBase::OnTimer() { BOOL bRresponse = false; CRect rcnControlUpdate; bRresponse = OnControlTimer(); for (size_t i = 0; i < m_vecControl.size(); i++) { CControlBase * pControlBase = m_vecControl.at(i); if (pControlBase) { rcnControlUpdate.SetRectEmpty(); if(pControlBase->OnTimer()) { bRresponse = true; } } } return bRresponse; }