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

C++ MFC OnTimer从其他地方接收额外事件,c++,mfc,C++,Mfc,我有一个MFC应用程序,我在其中使用ON_WM_定时器 前1-2分钟,我用 m_nIDEvent = SetTimer( 234, 500, NULL ); 这是完美的工作,但在运行应用程序2-3分钟后,我得到了另一个事件,我不知道它是从哪里每100毫秒左右 所以,我有 void SomeClass::OnTimer(UINT事件) { char-str[100]; sprintf_s(str,“事件=%d\n”,事件); } 起初它只打印出事件234,但在2-3分钟后,它开始显示430-43

我有一个MFC应用程序,我在其中使用ON_WM_定时器

前1-2分钟,我用

m_nIDEvent = SetTimer( 234, 500, NULL );
这是完美的工作,但在运行应用程序2-3分钟后,我得到了另一个事件,我不知道它是从哪里每100毫秒左右

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

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

我试着在afxwin2.inl(其中定义了SetTimer)上放置断点,并在事件中按预期停止,但在其他随机事件中没有

有什么想法吗


谢谢

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

旧浏览器不允许我编辑它,但在OnTimer上有一个我没有添加的打印语句。Windows在内部使用计时器来实现某些视觉效果。你能更具体地说一下你所指的“某个类”吗?是的,对不起。我有一个名为Viewer2的类,它是CRichEditView的基类。现在我只是简单地使用WM_TIMER向CRichEditView添加一些文本。我注意到了这一点,例如,我从代码中删除了SetTimer事件。当我在RichEditView窗口上左键单击并拖动时,这个问题会重复出现,我想这可能是MFC的预期响应,问题是它被卡住了,即使我没有使用左键单击/拖动,它也会继续调用这个。