Windows系统提供了一个定时响应的消息——定时器消息。用户可以设置指定的时间间隔来响应该消息。该消息就是WM_TIMER。
定时器的应用非常广泛,大家在日常生活中所玩的游戏,其中的人物的运动、景色的变化等,都是依靠定时器来实现的。定时器是以毫秒为单位,在一定的时间间隔响应相应的变化。定时器的使用与鼠标、键盘消息有所不同,需要三个步骤来完成,即:创建、响应与销毁。
创建定时器使用SetTimer函数来实现。当需要每隔一段时间执行一件事的时候,可以使用它。使用定时器的方法比较简单,通常告诉WINDOWS一个时间间隔,然后WINDOWS以此时间间隔周期性触发程序。SetTimer函数原型如下:
UINT SetTimer( HWND hWnd, // handle of window for timer messages UINT nIDEvent, // timer identifier UINT uElapse, // time-out value TIMERPROC lpTimerFunc // address of timer procedure );
参数hWnd,与定时器相关联的窗口句柄。
参数nIDEvent,定时器的ID值,每个定时器有不同的ID值,当然应用程序中可以设置多个不同的定时器,它们是通过这个ID来区分的。
参数uElapse,定时器触发时间间隔。毫秒单位(1000为1秒)。
参数lpTimerFunc,指定一个回调函数。如果Timer时间到了,系统会调用该函数。如果设置为NULL,Windows会向消息队列中投递WM_TIMER消息,等待应用程序中的过程处理函数对此消息的捕获处理。
响应定时器在系统的回调函数处,捕获WM_TIMER消息。在捕获WM_TIMER消息时,回调函数的wParam参数实为SetTimer函数的第二个参数,消息的ID。而lParam参数实为SetTimer函数的第四个参数,定时器的回调函数指针。
销毁定时器使用KillTimer函数,函数原型如下:
BOOL KillTimer( HWND hWnd, // handle of window that installed timer UINT uIDEvent // timer identifier );
KillTimer函数第一个参数为窗口句柄,第二个参数为销毁的定时器的ID。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。