Chinaunix首页 | 论坛 | 博客
  • 博客访问: 554422
  • 博文数量: 104
  • 博客积分: 4131
  • 博客等级: 上校
  • 技术积分: 1137
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-31 15:05
文章分类

全部博文(104)

文章存档

2011年(13)

2010年(23)

2009年(68)

我的朋友

分类: WINDOWS

2009-12-06 20:11:35

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) |
给主人留下些什么吧!~~