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

标签 c++ winapi mfc

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

我加

  • ON_WM_TIMER() 到消息表
  • OnTimer 函数

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

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

最佳答案

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

关于c++ - 为什么在 MFC 中收到错误消息而不是定时器消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12191262/

相关文章:

c++ - 尝试使用 cout 打印 vector 中包含的对象列表,但排序错误

c++ - 如何建立一个报告C++中哪些文件和行号的异常类?

c++ - 如何避免这种缩小?

c++ - 如何从堆栈中找到崩溃的代码行?

c++ - 如何将 MFC CFormView 放置在 CDockablePane 中?

c++ - 在 Cocos2d-x 中一次使用多个 Sprite 表

c++ - 这个神秘的 _TppWaiterpThread 线程的目的是什么

c++ - 从未调用过 Win32 ListBox WNDPROC

C4700 : uninitialized local variable when combining path

c++ - 缺少 DLL 问题