温馨提示×

c++的SetTimer函数怎么使用

c++
小亿
170
2023-09-15 18:40:35
栏目: 编程语言

C++中的SetTimer函数在Windows API中定义,用于创建一个定时器。它使用以下语法:

UINT_PTR SetTimer(

HWND hWnd, // 窗口句柄

UINT_PTR nIDEvent, // 定时器ID

UINT uElapse, // 定时器间隔,以毫秒为单位

TIMERPROC lpTimerFunc // 定时器回调函数,可选参数

);

参数说明:

  • hWnd: 窗口句柄,指定接收定时器消息的窗口。

  • nIDEvent: 定时器ID,用于标识一个定时器。可以通过此ID来取消定时器。

  • uElapse: 定时器间隔,以毫秒为单位。指定定时器在多久后触发一次。

  • lpTimerFunc: 定时器回调函数,可选参数。当定时器触发时,系统会调用此函数。

以下是一个使用SetTimer函数的示例:

#include

#include <windows.h>

// 定时器回调函数

VOID CALLBACK TimerProc(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime)

{

std::cout << “Timer Event” << std::endl;

}

int main()

{

// 创建定时器,每1000毫秒(1秒)触发一次定时器事件

UINT_PTR timerId = SetTimer(NULL, 0, 1000, TimerProc);

// 等待定时器事件

MSG msg;

while (GetMessage(&msg, NULL, 0, 0))

{

TranslateMessage(&msg);

DispatchMessage(&msg);

}

// 取消定时器

KillTimer(NULL, timerId);

return 0;

}

在上面的示例中,我们创建了一个每1秒触发一次的定时器,并定义了一个名为TimerProc的定时器回调函数。在主函数中,我们使用GetMessage循环等待定时器事件的发生。最后,我们使用KillTimer函数取消定时器。

注意:SetTimer函数是在Windows平台上使用的API,所以上述示例只能在Windows操作系统上运行。

0