MMRESULT timeSetEvent( UINT uDelay,
UINT uResolution,
LPTIMECALLBACK lpTimeProc,
WORD dwUser,
UINT fuEvent )
uDelay:以毫秒指定事件的周期。
Uresolution:以毫秒指定延时的精度,数值越小定时器事件分辨率越高。缺省值为1ms。
LpTimeProc:指向一个回调函数。
DwUser:存放用户提供的回调数据。
FuEvent:指定定时器事件类型:
TIME_ONESHOT:uDelay毫秒后只产生一次事件
TIME_PERIODIC :每隔uDelay毫秒周期性地产生事件。
程序实例:
#include
#include
#include
#pragma comment(lib,"Winmm.lib")
#define ONE_MILLI_SECOND 1 //定义1ms和5s时钟间隔,以ms为单位 ;
#define Five_SECOND 5000
#define TIMER_ACCURACY 1 //定义时钟分辨率,以ms为单位
void CALLBACK printf5s(UINT wTimerID, UINT msg,DWORD dwUser,DWORD dwl,DWORD dw2)
{
printf("there are 5s, time is now!\n");
}
void main()
{
int i=0;
UINT wTimerRes_5s; //定义时间间隔
UINT wAccuracy; //定义分辨率
UINT TimerID_5s; //定义定时器句柄
wAccuracy=TIMER_ACCURACY;
wTimerRes_5s = Five_SECOND;
if ((TimerID_5s = timeSetEvent(wTimerRes_5s,wAccuracy,
(LPTIMECALLBACK)printf5s, // 回调函数
0, // 用户传送到回调函数的数据;
TIME_PERIODIC)) != 0) //周期调用定时处理函数
{
printf("start!!!!!!!!!!!\n");
}
else
{
printf("end!!!!!!!!!!!\n");
}
while (i<20)
{
printf("hello!\n");
Sleep(1000);
i++;
}
timeKillEvent(TimerID_5s);
printf("game over!\n");
}
阅读(978) | 评论(0) | 转发(0) |