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

时间:2011-08-23 06:29:07

标签: c++ c mfc

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

由于

3 个答案:

答案 0 :(得分:21)

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

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

CWnd::OnTimer

答案 1 :(得分:3)

_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()将其关闭,以备不时之需。

答案 2 :(得分:1)

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

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

希望这有帮助。

干杯。