http://hi.baidu.com/warrially/item/d05f382486bf188e6f2cc37e
user模块提供了一组定时器API,他的原型如下
function SetTimer(
hWnd :HWND; //程序拥有窗口的handle
nIDEvent :UINT; //定时器编号,同一个窗口handle的所有定时器来说,编号必须唯一
uElapse :UINT; //每次触发的时间间隔
lpTimerFunc :TFNTimerProc //触发时,所调用的回调函数,如果想使用窗口消息的话,传入nil
): UINT;stdcall; //如果成功,返回定时器编号,如果失败,返回零
function SetTimer; external user32 name 'SetTimer';
SetTimer中的回调函数如果没有提供的话,当定时器触发的时候,窗口将会收到 WM_TIMER 窗口消息。
TWMTimer = packed record
Msg: Cardinal; //消息编号
TimerID: Longint; //定时器编号
TimerProc: TFarProc; //回调函数
Result: Longint; //返回值
end;
当某个定时器已经完成了自己的任务,需要退出的时候,只要调用 KillTimer函数,传入它的定时器编号即可
function KillTimer; external user32 name 'KillTimer';
function KillTimer(
hWnd: HWND; //调用SetTimer所传入的窗口的handle
uIDEvent: UINT//Set返回的定时器编号
): BOOL; stdcall;