多语言展示
当前在线:1221今日阅读:22今日分享:22

VS2013/MFC基于对话框编程:[14]定时器消息

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

Visual Studio 2013

方法/步骤
1

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

2

修改ID:计时按钮ID为IDC_Timer,复位按钮ID为IDC_Reset。静态文本ID为IDC_TimeDis,并添加变量CStatic m_time。

3

双击计时按钮生成按钮按下事件处理函数,编辑函数,通过SetTimer函数启动定时器;参数1:nIDEvent,定时器ID;参数2:nElapse,定时器定时时间,单位为毫秒;参数3:回调函数,设为NULL即可。

4

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

5

类向导,添加WM_TIMER消息处理函数。

6

编辑定时器消息响应函数OnTimer,判断定时器的ID,如果只有一个定时器可以不用判断,但许多应用需要多个定时器,这时就适合switch语句进行判断。这里三个变量mm,ss,mss设为静态变量,否则每次进入都会重新赋值,不过如果将变量在头文件中定义成成员变量就不需要这样了。

7

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

注意事项

注意定时器的ID,根据ID响应不同的功能。

推荐信息