如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
目录3.1概述3.2定时器的使用方法ViusalC++提供了三种完成周期性操作的方法:1、Sleep函数(延时函数)。2、WM_TIMER消息(Windows窗口消息)。3、多媒体定时器。3.2.1Sleep函数Sleep函数分析3.2.2WM_TIMER应用程序启动定时器参数说明:nIDEvent:非0值标识Timer的id。nElapse:以毫秒为单位的定时间隔时间lpfnTimer指向定时事件到达时调用的函数的指针,如果为NULL,那么调用OnTimer()功能:取消定时器,此函数调用后,相应的定时器将被关闭不再起作用。参数:用SetTimer()函数创建的定时器标识。定时器使用总结:1、在WM_CREATE消息中启动定时器(SetTimer)2、在WM_TIMER消息中编写定时函数(即需要周期性完成的工作)3、在定时工作完成之后关闭/停止定时器。(可选)3、程序示例步骤1生成应用程序框架步骤3添加WM_TIMER的消息响应函数(略)voidCTimerSampleDlg::OnButtonkilltimer(){KillTimer(1);}voidCTimerSampleDlg::OnButtonstarttimer(){SetTimer(1,100,NULL);}程序运行效果3.2.3多媒体定时器timeSetEvent函数功能:设置并启动一个多媒体定时器。参数说明:2、使用举例2)在对话框的头文件中定义代码voidCTimerSampleDlg::OnButtonstarttimer(){TimerID=timeSetEvent(100,1,LPTIMECALLBACK)TimeProc,0,TIME_PERIODIC);//新加代码SetTimer(1,100,NULL);//原来代码}4)编写回调函数代码5)在OnTimer中增加代码显示Cal的值。4.14.14.1使用QueryPerformanceFrequency()和QueryPerformanceCounter()函数进行精确定时的步骤如下:1、首先调用QueryPerformanceFrequency()函数取得高精度运行计数器的频率f,单位是每秒多少次(n/s),此数一般很大;2、在需要定时的代码的两端分别调用QueryPerformanceCounter()以取得高精度运行计数器的数值n1、n2,两次数值的差值通过f换算成时间间隔,t=(n2-n1)/f,当t大于或等于定时时间长度时,启动定时器;