为啥在 MFC 中收到错误消息而不是计时器消息?
Posted
技术标签:
【中文标题】为啥在 MFC 中收到错误消息而不是计时器消息?【英文标题】: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。
如何开始调试或解决问题?
【问题讨论】:
【参考方案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);
【讨论】:
以上是关于为啥在 MFC 中收到错误消息而不是计时器消息?的主要内容,如果未能解决你的问题,请参考以下文章