在一个 MFC 应用程序中,如何使用两个定时器?

Posted

技术标签:

【中文标题】在一个 MFC 应用程序中,如何使用两个定时器?【英文标题】:In a MFC application, how to use two timers? 【发布时间】:2013-09-17 01:17:40 【问题描述】:

在MFC应用程序中,如何使用多个定时器,在Ontimer函数中如何识别不同的定时器并执行不同的代码。

【问题讨论】:

我不确定你在做什么,OnTimer (...) 事件处理程序显然有一个参数,指示哪个计时器生成了事件。请参阅 CWnd::OnTimer (...) 的 MSDN 文档:msdn.microsoft.com/en-us/library/fy1hkbdk%28v=vs.90%29.aspx 我太笨了,你能不能给我一些代码,我需要两个计时器,非常感谢... 非常感谢,我知道了... 【参考方案1】:

CWnd::SetTimer 返回一个定时器标识符。对于您创建的每个计时器,您应该存储其 ID 号。

当CWnd::OnTimer 被调用时,它会接收到一个与产生消息的定时器相对应的参数。

您所要做的就是检查哪个计时器触发了该消息。就是这样。

【讨论】:

【参考方案2】:

事实上,您可以指定自己的计时器 ID。如果您为窗口定义计时器,则不需要中继 SetTimer 的返回值。 如果窗口是标准窗口(如列表视图),则应小心。这种窗口通常有自己的计时器。

PS:我也认为使用计时器而不验证计时器 id 是否与我在创建它时使用的匹配是一种糟糕的编码风格。

【讨论】:

以上是关于在一个 MFC 应用程序中,如何使用两个定时器?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 MFC 在 CWinApp 中接收计时器事件?

MFC 单个SetTimer怎么用啊

求大神!!如何在MFC中设置一个计时器?

MFC中如何建立和结束一个线程

如何用wpf调用mfc程序呢?

控制台程序可以使用MFC里面的一些函数和类吗