为什么在MFC中收到错误的消息而不是定时器消息?

时间:2012-08-30 06:43:23

标签: c++ winapi mfc

我有一个继承自ClistCtrl的类ClistCtrlEx。

我添加

  • ON_WM_TIMER()到消息表
  • OnTimer功能

但在调用SetTimer函数程序之前,按事件ID 45调用WM_TIMER消息,当我调用SetTimer时,根本不发送WM_TIMER。

我如何开始调试或解决问题?

1 个答案:

答案 0 :(得分:5)

这篇知识库文章似乎合适:PRB: OnTimer() Is Not Called Repeatedly for a List Control

基本上,他们建议只调用默认处理程序,如果事件ID不是你的,因为列表控件设置自己的计时器,其WM_TIMER处理程序将KillTimer(),无论id是什么。

void CMyListCtrl::OnTimer(UINT nIDEvent)
{
   if (nIDEvent == m_myTimerID)
   {
       // handle timer event
   }
   else
   {
      CListCtrl::OnTimer(nIDEvent);
   }
}