【问题标题】:why receive wrong message in MFC instead of timer message?为什么在 MFC 中收到错误消息而不是计时器消息?
【发布时间】:2012-08-30 06:43:23
【问题描述】:

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

我加了

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

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

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

【问题讨论】:

    标签: c++ winapi mfc


    【解决方案1】:

    这篇知识库文章似乎很合适: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);
       }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-12
      • 2015-01-25
      • 1970-01-01
      • 2016-04-24
      • 2010-12-11
      • 2022-01-21
      • 2012-07-08
      相关资源
      最近更新 更多