📄 timer.h
字号:
#ifndef _TIMER_H
#define _TIMER_H
#include "mmsystem.h"
class timer
{
UINT id;
DWORD u;
LPTIMECALLBACK f;
public:
timer(): id(0), u(0), f(NULL) {}
~timer()
{
stop();
}
//void CALLBACK fn(UINT uTimerID, UINT uMsg, DWORD dwUser, DWORD dw1, DWORD dw2);
bool start(UINT delay, LPTIMECALLBACK fn, DWORD user)
{
if( !id )
{
id = timeSetEvent(delay, 0, fn, user, TIME_PERIODIC | TIME_CALLBACK_FUNCTION);
f = fn;
u = user;
}
return id != 0;
}
bool startag(UINT delay, LPTIMECALLBACK fn, DWORD user)
{
if( !id )
{
id = timeSetEvent(delay, 0, fn, user, TIME_ONESHOT | TIME_CALLBACK_FUNCTION);
f = fn;
u = user;
}
return id != 0;
}
void stop()
{
if( id )
{
if(timeKillEvent(id) != TIMERR_NOERROR )
AfxMessageBox("timer kill failure !!");
id = 0;
/*
* 下面这几句会在change()时造成定时器停止
*/
// u = 0;
// f = NULL;
}
}
void change(UINT delay)
{
if( id )
{
stop();
start(delay, f, u);
}
}
bool is_started() const
{
return id != 0;
}
};
#endif //_TIMER_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -