Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在基于MFC对话框的应用程序中使用计时器?_C++_C_Mfc - Fatal编程技术网

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

C++ 如何在基于MFC对话框的应用程序中使用计时器?,c++,c,mfc,C++,C,Mfc,我正在VisualStudio2008中开发基于MFC对话框的应用程序。我想使用在应用程序启动时启动并继续运行和调用执行我的任务的函数的计时器?我该怎么做 谢谢只需使用SetTimer方法,并传递两个参数:Timer ID(任意数字)和超时(以毫秒为单位)。然后写下OnTimerimplementation,并在BEGIN\u MESSAGE\u MAP中的\u WM\u TIMER上输入 接受3个参数,但只需要2个。将第三个参数作为NULL传递 如果您想了解使用计时器的基本概念,请查看此链接并

我正在VisualStudio2008中开发基于MFC对话框的应用程序。我想使用在应用程序启动时启动并继续运行和调用执行我的任务的函数的计时器?我该怎么做


谢谢

只需使用
SetTimer
方法,并传递两个参数:Timer ID(任意数字)和超时(以毫秒为单位)。然后写下
OnTimer
implementation,并在
BEGIN\u MESSAGE\u MAP
中的\u WM\u TIMER上输入

接受3个参数,但只需要2个。将第三个参数作为NULL传递


如果您想了解使用计时器的基本概念,请查看此链接并逐步完成使用计时器的步骤。在此之后,您应该能够随时在应用程序中轻松使用计时器

链接:

希望这有帮助

干杯

_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()将其关闭。

我收到以下错误:错误C3867:'chdvrlaunchedlg::TimerFunction':函数调用缺少参数列表;使用“&chdvrlaunchedlg::TimerFunction”创建指向成员的指针。若我将回调函数声明为静态函数,那个么我将无法从此回调调用我的另一个函数。我是MFC的新手。感谢你应该考虑的其他方法是:时不时地获取当前时间,检查是否有足够的时间通过,或者启动一个新的线程(或进程),它将调用<代码>睡眠(长MiLISCs);<代码>,然后调用所需的函数。记住不要在构造函数中调用SetTimer,即在窗口句柄存在之前!。。。