您可以通过呼叫
在任何时刻停止WM_TIMER讯息(即使正在处理WM_TIMER讯息)。此函式的第二个参数是SetTimer呼叫中所用的同一个计时器ID。在终止程式之前,您应该回应WM_DESTROY讯息停止任何活动的计时器。
当您的视窗讯息处理程式收到一个WM_TIMER讯息时,wParam参数等於计时器的ID值(上述情形为1),lParam参数为0。如果需要设定多个计时器,那么对每个计时器都使用不同的计时器ID。wParam的值将随传递到视窗讯息处理程式的WM_TIMER讯息的不同而不同。为了使程式更具有可读性,您可以使用#define叙述定义不同的计时器ID:
然後您可以使用两个SetTimer呼叫来设定两个计时器:
WM_TIMER的处理如下所示:
如果您想将一个已经存在的计时器设定为不同的时间间隔,您可以简单地用不同的时间值再次呼叫SetTimer。在时钟程式里,如果显示秒或不显示秒是可以选择的,您就可以这样做,只需简单地将时间间隔在1000毫秒和60 000毫秒间切换就可以了。
程式8-1显示了一个使用计时器的简单程式,名为BEEPER1,计时器的时间间隔设定为1秒。当它收到WM_TIMER讯息时,它将显示区域的颜色由蓝色变为红色或由红色变为蓝色,并通过呼叫MessageBeep函式发出响声。(虽然MessageBeep通常用於MessageBox,但它确实是一个全功能的鸣叫函式。在有音效卡的PC机上,一般可以使用不同的MB_ICON参数作为MessageBeep的一个参数以用於MessageBox,来播放使用者在「控制台