MFC OnTimer从其他地方接收额外的事件

时间:2014-11-05 22:49:47

标签: c++ mfc

我有一个MFC应用程序,我使用的是ON_WM_TIMER。

前1-2分钟,我用

启动计时器
m_nIDEvent = SetTimer( 234, 500, NULL );

这很完美,但是在运行应用程序2-3分钟后,我又发现了另一个事件,我不知道它是从每100毫秒左右来的。

所以,我有     void SomeClass :: OnTimer(UINT事件)     {       char str [100];       sprintf_s(str," event =%d \ n",event);     }

首先它只打印出事件#234,但在2-3分钟后它开始显示430-432的一些事件。有什么想法吗?

我尝试在afxwin2.inl(其中定义了SetTimer)中放置一个断点,并且我把它放在那里按预期停止,但不是与其他随机事件一起停止。

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

这是Windows计时器的本质。所有计时器事件都由单个消息WM_TIMER处理,您的OnTimer函数应检查它可以处理的特定事件。某些Windows组件可以生成自己的计时器请求,并且这些组件不会通过MFC SetTimer函数来触发断点。