如何在基于MFC对话框的应用程序中使用计时器?

我在Visual Studio 2008中开发基于MFC Dialog的应用程序。我想使用在应用程序启动时启动的计时器并继续运行并调用执行我的任务的函数? 我怎样才能做到这一点?

谢谢

只需使用SetTimer方法,并传递两个参数:Timer ID(任意数字),以及以毫秒为单位的超时。 然后编写OnTimer实现,并在BEGIN_MESSAGE_MAP...END_MESSAGE_MAP内写入一个条目ON_WM_TIMER

CWnd :: SetTimer需要3个参数,但只需要2个参数。 将第三个参数传递为NULL。

的CWnd ::的OnTimer

 _AFXWIN_INLINE UINT_PTR CWnd::SetTimer(UINT_PTR nIDEvent, UINT nElapse, void (CALLBACK* lpfnTimer)(HWND, UINT, UINT_PTR, DWORD)) 

你可能想做点什么

 UINT_PTR myTimer = SetTimer (1, 1000, null); // one event every 1000 ms = 1 s 

并对窗口事件处理程序中的ON_TIMER事件做出反应:

 void CMyView::OnTimer (UINT_PTR nIdEvent) { if (nIdEvent == 1) // handle timer event } 

或者,您可以将指针传递给处理计时器事件的函数。 保持计时器的手柄允许您使用KillTimer()将其关闭,以备不时之需。

如果您想了解使用计时器的基本概念,请查看此链接并完成与计时器一起使用的分步过程。 在此之后,您应该可以随时在应用程序中轻松使用计时器。

链接: http : //www.functionx.com/visualc/controls/timer.htm

希望这可以帮助。

干杯。