MFC:定时器
1. 定时器设置
API:CWnd::SetTimer()
函数原型:UINT SetTimer(UINT nIDEvent, UINT nElapse, void (CALLBACK EXPORT*lpfnTimer) (HWND, UINT, UINT, DWORD) );
返回值:
如果函数成功,则返回新定时器的标识符。应用程序可以将这个值传递给KillTimer成员函数以销毁定时器。如果成功,则返回非零值;否则返回0。
参数:
| nIDEvent | 指定了不为零的定时器标识符。 | 
| nElapse | 指定了定时值;以毫秒为单位。 | 
| lpfnTimer | 指定了应用程序提供的TimerProc回调函数的地址,该函数被用于处理WM_TIMER消息。如果这个参数为NULL,则WM_TIMER消息被放入应用程序的消息队列并由CWnd对象来处理。 | 
说明:
这个函数设置一个系统定时器。指定了一个定时值,每当发生超时,则系统就向设置定时器的应用程序的消息队列发送一个WM_TIMER消息,或者将消息传递给应用程序定义的TimerProc回调函数。
lpfnTimer回调函数不需要被命名为TimerProc,但是它必须按照如下方式定义:
void
CALLBACK EXPORT TimerProc(
   HWND hWnd,       //
调用SetTimer的CWnd的句柄
   UINT nMsg,         // WM_TIMER
   UINT
nIDEvent      // 定时器标识
   DWORD dwTime    //
系统时间
   );
定时器是有限的全局资源;因此对于应用程序来说,检查SetTimer返回的值以确定定时器是否可用是很重要的。
2. 关闭定时器
API:KillTimer();
3. 定时器处理消息
a) WM_TIMER
| 映射入口 | 函数原型 | 
| ON_WM_TIMER( ) | afx_msg void OnTimer( UINT ) | 
b) CWnd::OnTimer
afx_msg void OnTimer( UINT nIDEvent );
参数:
| nIDEvent | 指定定时器的标识符。 | 
说明:
当在SetTimer成员函数中指定的每一个时间间隔都被用来安装一个定时器之后,框架调用这个成员函数。
当在应用程序的消息队列中没有其它的消息时,Windows函数DispatchMessage发送一个WM_TIMER消息。
注意
框架调用这个成员函数来使你的应用程序可以处理一个Windows消息。传递给你的函数的参数反映了在消息收到时框架收到的参数。如果你调用了这个函数的基类实现,这个实现将使用最初随着消息传递过来的参数,而不是使用你提供给函数的参数。
MFC:定时器的更多相关文章
- MFC定时器使用
		
MFC定时器实现方法 方法一:CWnd类提供的成员函数SetTimer实现定时器功能,只能在CWnd类或其派生类中调用. 方法二:Windows API函数SetTimer来实现. MFC定时器 启动 ...
 - MFC定时器
		
比较简单,在程序中可以找到原型. 在程序中我们经常要使用定时刷新的功能,典型的应用是在信息管理系统中表单要跟着数据库中的数据变动.MFC提供了定时器来完成这个功能. ================= ...
 - MFC定时器的使用
		
巧妙地使用定时器能达到意想不到的效果,写界面的时候能实现渐变,也能帮助多线程控制等我们知道,在VC的MFC中,已经为我们封装好了很多全面和强大的函数集,所以在MFC编程时,巧妙地调用MFC函数库可以为 ...
 - MFC的定时器OnTimer
		
本文总结来源出自鸡啄米,感谢鸡啄米.来源:http://www.jizhuomi.com/software/232.html 定时器简介 定时器,可以帮助开发者或者用户定时完成某项任务.在使用定时器时 ...
 - VS2010/MFC编程入门之四十四(MFC常用类:定时器Timer)
		
前面一节鸡啄米讲了CTime类和CTimeSpan类的使用,本节继续讲与时间有关的定时器.定时器并不是一个类,主要考虑到,提起时间的话就不能不说定时器,所以就把它放到CTime和CTimeSpan之后 ...
 - VS2010/MFC编程入门之四十四:定时器Timer
		
前面一节鸡啄米讲了CTime类和CTimeSpan类的使用,本节继续讲与时间有关的定时器.定时器并不是一个类,主要考虑到,提起时间的话就不能不说定时器,所以就把它放到CTime和CTimeSpan之后 ...
 - VS2010-MFC(MFC常用类:定时器Timer)
		
转自:http://www.jizhuomi.com/software/232.html 前面一节讲了CTime类和CTimeSpan类的使用,本节继续讲与时间有关的定时器.定时器并不是一个类,主要考 ...
 - VS2005 添加onTimer定时器
		
SetTimer(1,300,NULL); void CchangeDisplayDlg::OnTimer(UINT_PTR nIDEvent) { // TODO: 在此添加消息处理程序代码和/或调 ...
 - MFC的定时函数 SetTimer和结束killTimer
		
什么时候我们需要用到SetTimer函数呢?当你需要每个一段时间执行一件事的的时候就需要使用SetTimer函数了. 使用定时器的方法比较简单,通常告诉WINDOWS一个时间间隔,然后WINDOWS以 ...
 - JavaScript线程机制
		
浏览器的内核是多线程的,它们在内核制控下相互配合以保持同步,一个浏览器至少实现三个常驻线程:JS引擎线程(用于处理JS).GUI渲染线程(用于页面渲染).浏览器事件触发线程(用于控制交互). 除此之外 ...
 
随机推荐
- setTimeout与setInterval的区别浅析
			
在网页制作动态效果时,一定会遇到某些需求,要求某段程序等待多时时间后再开始执行,就像在我们的生活中一样,待会儿再开始做一件事.在JavaScript中主要通过定时器实现此类需求,本文将对定时器做一个概 ...
 - OpenCL——把vector变成scalar
			
https://stackoverflow.com/questions/46556471/how-may-i-convert-cast-scalar-to-vector-and-vice-versa- ...
 - Java数据解析之XML
			
文章大纲 一.XML解析介绍二.Java中XML解析介绍三.XML解析实战四.项目源码下载 一.XML解析介绍 最基础的XML解析方式有DOM和SAX,DOM和SAX是与平台无关的官方解析方式 ...
 - Spark MLlib FPGrowth关联规则算法
			
一.简介 FPGrowth算法是关联分析算法,它采取如下分治策略:将提供频繁项集的数据库压缩到一棵频繁模式树(FP-tree),但仍保留项集关联信息.在算法中使用了一种称为频繁模式树(Frequent ...
 - Docker-通过docker-maven-plugin插件实现docker镜像构建并自动发布到远程docker服务器
			
我们知道,docker能实现应用打包隔离,实现快速部署和迁移.如果我们开发应用使用了spring cloud + spring boot架构,那么,通过docker-maven-plugin实现快速构 ...
 - iBatis第一章:基础知识概述 & MVC思想
			
一.java是一门十分受开发人员欢迎的语言,在开发语言排行榜中名列前茅,人们对其看法不尽相同,就我自身感受而言,我觉得java语言的主要优势体现在如下几方面:1.java属于开源语言,开发人员可以找到 ...
 - Microsoft Deployment Toolkit build 8456
			
MDT build 8456的重大变化摘要. 支持的配置更新 Windows ADK for Windows 10,版本1809 Windows 10,版本1809 Configuration Man ...
 - firewalld防火墙设置
			
CentOS7/RHEL7系统默认的iptables管理工具是firewalld,不再是以往的iptables-services,命令用起来也是不一样了,当然你也可以选择卸载firewalld,安装i ...
 - 逆向-攻防世界-logmein
			
iDA载入程序,shift+F12查看关键字符串,找到双击来到所在地址,进入函数 然后进入主函数, 经过分析,可以得出:输入的字符要等于 经过处理的v7和v8的异或.v8很明显,但是v7是怎么回事呢 ...
 - 基于Metronic的Bootstrap开发框架--资产编码打印处理
			
在开发业务管理系统的时候,往往涉及到资产信息及编码的打印处理,如我们需要对资产信息.条形码.二维码一起打印,以便贴在具体资产信息上面,方便微信公众号.企业微信进行业务处理,那么编码的打印就很有必要了, ...