第八章 定时器

来源:互联网 发布:淘宝美工怎么接单 编辑:程序博客网 时间:2024/04/29 10:05

    1、Microsoft Windows定时器是一种输入设备,它周期性地在每经过一个指定的时间间隔后就通知应用程序一次。应用程序将时间间隔告诉Windows,然后Windows给应用程序发送周期性发生的WM_TIMER消息以表示时间到了。

    2、定时器入门

    应用程序通过呼叫SetTimer函数为Windows程序分配一个定时器。SetTimer有一个时间间隔范围为1毫秒到4,294,967,295毫秒(将近50天)的整数型态参数,指示Windows每隔多久时间给应用程序发送WM_TIMER消息。当应用程序用完定时器时,呼叫KillTimer函数来停止定时器消息。在处理WM_TIMER消息时,您可以通过呼叫KillTimer函数来编写一个[限用一次]的定时器。

    3、定时器消息不是异步的

    WM_TIMER消息不是异步的,它放在正常的消息队列中,和其他消息排列在一起。WM_TIMER消息和WM_PAINT消息的处理非常类似,这两个消息都是低优先级的,程序只有在消息队列中没有其它消息时才接受它们。

    4、定时器的使用

    如果需要在整个程序执行期间都是用定时器,那么您将得从WinMain函数中或者在处理WM_CREATE消息时呼叫SetTimer,并在推出WinMain或响应WM_DESTROY消息时呼叫KillTimer。
    方法一是把WM_TIMER消息发送到通常的窗口消息处理程序;方法二是让Windows直接将定时器消息发送给您程序的另一个函数,接收这些定时器消息的函数被称为callback函数,这是一个在您的程序之中但是由Windows呼叫的函数。方法三类似于方法二,只是传递给SetTimer的hwnd参数被设定为NULL,并且第二个参数(通常为定时器ID)被忽略了,最后,此函数传回定时器ID。