设置定时器:
#define AUTORECORD_TIMER 1
1)SetTimer(AUTORECORD_TIMER, 1000*60*2,NULL);
AUTORECORD_TIMER为定时器ID,1000*60*2为设置的定时时间间隔(毫秒为单位。此处间隔为2分钟);
最后一个参数为空时,默认采用的是系统 的OnTimer函数,如下示例添加:
A.cpp:
BEGIN_MESSAGE_MAP(A, CDialog)
ON_WM_TIMER()
END_MESSAGE_MAP()
void A::OnTimer(UINT_PTR nIDEvent)
{
if(nIDEvent == AUTORECORD_TIMER )//若只有一个定时器则无需判断
{
要实现的操作;
}
}
A.h:
class A:public CDialog
{
public:
afx_msg void OnTimer(UINT_PTR nIDEvent);
}
注:上面部分除了手动添加,也可以通过vs的Class wizard下的Message添加机制实现。
2)SetTimer(NULL,AUTORECORD_TIMER, 1000*60*nInterval,(TIMERPROC)TimerProc);
最后一个参数为自定义的回调函数TimerProc,示例(由于我并没有应用按到句柄,因此设为NULL)
A.cpp:
void A::TimerProc(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime)
{
if(idEvent== AUTORECORD_TIMER )//若只有一个定时器则无需判断
{
要实现的操作;
}
}
A.h:
class A
{
public:
static void CALLBACK TimerProc(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime);
}
注:回调函数TimerProc是静态的,因此要求其中的函数和类内变量也是静态的。