没有WM_TIMER的处理函数,那就自己加,使用API函数
UINT WINAPI SetTimer(
HWND hwnd,
UINT idTimer,
UINT uTimeOut,
TIMERPROC pfnTimerProc);BOOL WINAPI KillTimer(
HWND hwnd,
UINT idEvent);
UINT WINAPI SetTimer(
HWND hwnd,
UINT idTimer,
UINT uTimeOut,
TIMERPROC pfnTimerProc);BOOL WINAPI KillTimer(
HWND hwnd,
UINT idEvent);
ontimer里
do
killer(1);
第一个参数是定时器的编号(可以有多个不同的定时器)
第二个参数是调用同一个定时器的时间间隔,单位是毫秒
第三个我也不太清楚,一般填0或NULL的
比如SetTimer(0,10,0)就是每隔离10毫秒调用一次WM_TIMER对应的函数
如果使用SetTimer,你必須先定義一下回調函數,然後這樣調用:
::SetTimer(NULL,1,/*1為定時編號*/ 10,回調函數名稱)
前面要加::
VOID CALLBACK TimerProc(
HWND hwnd, // handle of window for timer messages
UINT uMsg, // WM_TIMER message
UINT idEvent, // timer identifier
DWORD dwTime // current system time
);
这是msdn上给出的。