2016 - 2024

感恩一路有你

定时器消息的使用

浏览量:2974 时间:2024-08-09 18:32:01 作者:采采

定时器消息可以说是Windows所有消息中最常用的消息,许多事件需要通过定时触发,比如最简单的秒表,还有工程软件中的定时采样等等都少不了定时器。本文将通过一个简单的例子来说明如何开启、响应和终止定时器。

新建Demo项目

首先,我们需要新建一个Demo项目,并打开对话框。在对话框上添加两个按钮和一个静态文本,并修改相应的Caption。程序的功能是按下计时按钮开始计时,将时间显示在静态文本中,而复位按钮则可以将文本复位为全零并关闭定时器。

修改ID和添加变量

接下来,我们需要对按钮和静态文本进行一些修改。将计时按钮的ID改为IDC_Timer,复位按钮的ID改为IDC_Reset。静态文本的ID设置为IDC_TimeDis,并添加一个变量CStatic m_time。

启动定时器

双击计时按钮,生成按钮按下事件处理函数,并编辑函数内容。通过SetTimer函数来启动定时器。第一个参数是定时器的ID,第二个参数是定时器定时时间,单位为毫秒,第三个参数是回调函数,设为NULL即可。

销毁定时器

双击复位按钮,生成函数,并编辑函数内容。通过KillTimer函数来销毁定时器,只需输入一个参数,即定时器ID。同时,将文本复位为“00:00:00”。

处理定时器消息

使用类向导,添加WM_TIMER消息处理函数。然后,编辑定时器消息响应函数OnTimer,在函数中判断定时器的ID。如果只有一个定时器,可以不进行判断。但如果应用中需要多个定时器,就适合使用switch语句进行判断。将mm、ss、mss这三个变量设为静态变量,否则每次进入函数都会重新赋值。不过,如果将这些变量定义为成员变量,则无需这样处理。

重新开始计数

本程序实现了定时器的启动、响应和终止功能。但是,在复位后重新计时时,这三个变量仍然会在原有基础上计数,相当于是暂停后重新开始。如果需要重新开始计数,只需定义一个成员变量作为定时器销毁的标志。然后,在定时器消息中判断标志位,如果需要重新开始,就对变量进行清零。清零后,立即清除标志位。

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。