天天看点

SetTimer时间间隔的问题

1、用WM_TIMER来设置定时器

SetTimer函数的原型

UINT_PTR SetTimer(

HWND hWnd,                      //

窗体句柄

UINT_PTR nIDEvent,          // 定时器ID,多个定时器时,能够通过该ID推断是哪个定时器

UINT nElapse,                     // 时间间隔,单位为毫秒

TIMERPROC lpTimerFunc  //

回调函数

);

返回值:

类型:UINT_PTR

假设函数成功,hWnd參数为0,则返回新建立的时钟编号,能够把这个时钟编号传递给KillTimer来销毁时钟.

假设函数成功,hWnd參数为非0,则返回一个非零的整数,能够把这个非零的整数传递给KillTimer来销毁时钟.

假设函数失败,返回值是零.若想获得很多其它的错误信息,调用GetLastError函数.

2、UINT nElapse, // 时间间隔,单位为毫秒

一直迷惑这个定时器是先运行一次。还是等待一个时间间隔再运行。上网查了一下有不少网友有相同的疑问。

经过查资料和实际操作。发现定时器是先等待一个时间间隔再运行第一次。