TimerProc
Windows API函数
TimerProc是一类用于处理WM_TIMER消息的回调函数,共有4个参数。在编写此类函数时用户可使用任意函数名称作为TimerProc。TIMERPROC类型是指向此类回调函数的指针
定义
应用
如果在程序的整个执行过程中使用计时器,一般在处理WM_CREATE消息时或WinMain中消息循环前调用SetTimer,在处理WM_DESTROY消息时或在WinMain中消息循环后返回前调用KillTimer。根据SetTimer中的参数不同,有三种方法使用计时器,TimerProc与其中两种有关。
方法一
在SetTimer时指定窗口句柄hWnd,nIDEvent中指定计时器ID,将lpTimerFunc置NULL从而不使用TimerProc。使用SetTimer中指定的句柄和ID,在窗口过程中处理WM_TIMER消息。最好使用#define定义计时器的ID,例如:
方法二
调用SetTimer时指定窗口句柄hWnd,nIDEvent中指定计时器ID,lpTimerFunc指定为TimerProc函数的指针。这种方法无需在窗口过程中处理WM_TIMER消息,而使用TimerProc函数(名字可自定)处理WM_TIMER消息:
TimerProc的参数hwnd是在调用SetTimer时指定的窗口句柄。Windows只把WM_TIMER消息送给TimerProc,因此消息参数总是等于WM_TIMER。iTimerID值是计时器ID,dwTimer值是与从GetTickCount函数的返回值相容的值。这是自Windows启动后所经过的毫秒数。
方法三
调用SetTimer时不指定窗口句柄(为NULL),iTimerID参数自然被忽略,lpTimerFunc指定为TimerProc的指针。此时SetTimer的返回值是新建立的计时器的ID,需将这个ID保存以供KillTimer销毁计时器时所用。当然,KillTimer的hWnd参数也置为NULL。这种方法同样用TimerProc处理消息。
使用这种方法的好处是不必自己指定计时器ID,这样就不必担心用错ID。
参考资料
TIMERPROC (winuser.h).MSDN.2018-12-05
最新修订时间:2021-06-10 09:01
目录
概述
定义
应用
参考资料