1

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

我加

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

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

我怎样才能开始调试它或解决问题?

4

1 回答 1

5

这篇知识库文章似乎很合适:PRB: OnTimer() Is Not Calledly 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);
   }
}
于 2012-08-30T07:10:29.450 回答