初学WIN32编程!
关于WIN32的定时器问题?
有如下程序
unsigned int Num;//一个全局变量用来记录倒计时触发的次数
在窗口过程函数winproc函数的WM_CREATE消息中设置了定时器 SetTimer(hwnd,1,10000,timerproc)
然后在自定义的timerproc函数里有如下的响应代码
Num++;//触发一次变量自加一次
out(Num);//自定义的一个函数将该值输出到窗口客户区
MessageBox(NULL, “计时器响应一次”,“”,0);
运行结果有点奇怪,入口有MessageBox(NULL, “计时器响应一次”,“”,0);运行结果和预想的是一样的,10秒中加一次,但若删除这个弹窗后前一个10秒正常,10秒一过,程序就疯狂输出,瞬间Num就成百上千了?何故?
不用自定的计时器响应函数timerproc改使用系统的WM_TIMER消息也是同样的结果!求解!
不想通过KillTimer来销毁定时器,我希望定时器每隔一段时间就发送一条(只发送一条)WM_TIMER消息!
但事实上倒计时一结束,WINDOWS好像发了无数条WM_TIMER?