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

her*_*ian 1 c++ winapi mfc

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

我加

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

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

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

atz*_*tzz 5

这篇知识库文章似乎是合适的:PRB:OnTimer()不会重复调用列表控件.

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

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