我有一个MFC应用程序,其中我正在使用ON_WM_TIMER。
前1-2分钟,我启动计时器
m_nIDEvent = SetTimer( 234, 500, NULL );这是完美的工作,但在运行应用程序2-3分钟后,我收到另一个事件,我不知道它是从哪里来的,大约每100毫秒。
因此,我有void SomeClass::OnTimer(UINT event) { char str100;sprintf_s(str,"event = %d\n",event);}
起初,它只打印出事件#234,但在2-3分钟后,它开始显示430-432的一些事件。有什么想法吗?
我尝试将断点放在afxwin2.inl (其中定义了SetTimer ),并在事件中按预期将其停止,但没有在另一个随机事件中停止。
有什么想法吗?
谢谢!
发布于 2014-11-06 07:45:29
这是Windows计时器的特性。所有计时器事件都由单个消息WM_TIMER处理,您的OnTimer函数应该检查它可以处理的特定事件。一些Windows组件可以生成自己的计时器请求,而这些请求不会通过MFC SetTimer函数来触发断点。
https://stackoverflow.com/questions/26768671
复制相似问题