Windows计时器
什么时候我们需要用到SetTimer函数呢?当你需要每个一段时间执行一件事的的时候就需要使用SetTimer函数了。 让我们先来看看SetTimer函数的原型: UINT SetTimer(UINT nIDEvent,UINT nElapse,void(CALLBACK EXPORT
*lpfnTimer)(HWND,UINT ,YINT ,DWORD)) 当使用SetTimer函数的时候,就会生成一个计时器。函数中nIDEvent指的是计时器的标识,也就是名字。nElapse指的是时间间隔,也就是每隔多长时间触发一次事件。第三个参数是一个回调函数,在这个函数里,放入你想要做的事情的代码,你可以将它设定为NULL,也就是使用系统默认的回调函数,系统默认认的是onTime函数。这个函数怎么生成的呢?你需要在需要计时器的类的生成onTime函数:在ClassWizard里,选择需要计时器的类,添加WM_TIME消息映射,就自动生成onTime函数了。然后在函数里添加代码,让代码实现功能。每隔一段时间就会自动执行一次。 例: SetTimer(1,1000,NULL); 1:计时器的名称; 1000:时间间隔,单位是毫秒; NULL:使用onTime函数。 当不需要计时器的时候调用KillTimer(nIDEvent); 例如:KillTimer(1); 2. 或许你会问,如果我要加入两个或者两个以上的 timer怎么办? 继续用SetTimer函数吧,上次的timer的ID是1,这次可以是2,3,4。。。。 SetTimer(2,1000,NULL); SetTimer(3,500,NULL); 嗯,WINDOWS会协调他们的。当然onTimer函数体也要发生变化,要在函数体内添加每一个timer的处理代码: onTimer(nIDEvent) { switch(nIDEvent) { case 1:........; break; case 2:.......; break; case 3:......; break; } }
*********************************************************** SDK编程笔记 — 计时器篇
两个计时器API的讨论
SetTimer函数用于创建一个计时器,KillTimer函数用于销毁一个计时器。计时器属于系统资源,使用完应及时销毁。
SetTimer的函数原型如下:
UINT_PTR SetTimer( HWND hWnd, UINT_PTR nIDEvent, UINT uElapse, TIMERPROC lpTimerFunc ) ;
其中
hWnd是和timer关联的窗口句柄,此窗口必须为调用SetTimer的线程所有;如果hWnd为NULL,没有窗口和timer相关联并且nIDEvent参数被忽略
nIDEvent是timer的标识,为非零值;如果hWnd为NULL则被忽略;如果hWnd非NULL而且与timer相关联的窗口已经存在一个为此标识的timer,则此次SetTimer调用将用新的timer代替原来的timer。timer标识和窗口相关,两个不同的窗口可以拥有nIDEvent相同的tiemr
uElapse是以毫秒指定的计时间隔值,范围为1毫秒到4,294,967,295毫秒(将近50天),这个值指示Windows每隔多久时间给程序发送WM_TIMER消息。
lpTimerFunc是一个回调函数的指针,俗称TimerFunc;如果lpTimerFunc为NULL,系统将向应用程序队列发送WM_TIMER消息;如果lpTimerFunc指定了一个值,
DefWindowProc将在处理WM_TIMER消息时调用这个lpTimerFunc所指向的回调函数,因此即使使用TimerProc代替处理WM_TIMER也需要向窗口分发消息。
我们知道,在Windows中,可以通过调用SetTimer函数为应用程序分配一个计时器。当指定了一个时间间隔以后,Windows系统将每隔指定的时间向应用发送一条WM_TIMER消息,从而...
服务器计时器与 Windows 计时器_IT/计算机_专业资料。服务器计时器与 Windows 计时器在 Visual Studio .NET 中有两种计时器控件——基于服务器的计时器和标准的基...
Programming Windows 程式开发设计指南(Windows95 程序设计 第五版) 第八章 计时器 Microsoft Windows 计时器是一种输入设备,它周期性地在每经过一个指定 的时间...
在Windows中使用精确计时器_工学_高等教育_教育专区。VC MFC 编程经验与技巧在BB}dow} 中使用精确计时器}} } } H/前言。}} } }}我们知道,在 BB}dow} 中...
计时器 获取WindowsMediaPlayer视频的播放时间长度_计算机软件及应用_IT/计算机_专业资料。1. PPT中实现计时器; 2. 在PPT调用mediaplayer控件获取视频播放的当前位置...
C#强化系列文章三:实验分析 C#中三种计时器使用异同点 强化系列文章三: 强化系列文章三 中三种计时器使用异同点 C#中提供了三种类型的计时器: 1、基于 Windows ...
Last Update date : 2015.07.20 在Windows8.1系统中,“闹钟”应用可以为您提供闹钟、计时器和秒表功能来帮助您管理和跟踪时间,下面为大家介绍一下如何创 建计时...
Last Update date : 2015.07.13 在Windows8.1系统中,“闹钟”应用可以为您提供闹钟、计时器和秒表功能来帮助您管理和跟踪时间,下面为大家介绍一下如何创 建计时...
计时器 - 分类 计时器 计时器的种类包括电磁打点计时器、 电火花计时器、 坚持计时器、 停车计时器、 反应计时器、 放大计时器以及 windows 计时器等等。电磁打...
配用SWP 可方便的实现多台仪表与上位机进行联 系列数据采集器和基于WINDOWS’95...第二报警ON 时亮灯 第二报警指示灯 灯 3 SWP 系列智能仪表 定时/计时器操作...
闽公网安备 35021102001881号 
热门文档