博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++ 定时器的用法:SetTimer和Ontimer
阅读量:7237 次
发布时间:2019-06-29

本文共 1375 字,大约阅读时间需要 4 分钟。

  hot3.png

SetTimer函数的用法

1)用WM_TIMER来设置定时器

先请看SetTimer这个API函数的原型

UINT_PTR SetTimer(                      HWND hWnd,//和定时器相关联的窗口             UINT_PTR nIDEvent,//一个非0的数字标志这个定时器             UINT uElapse,//指定时间间隔,以毫秒为单位             TIMERPROC lpTimerFunc//一般指定为null );

当在MFC的工程中如下: 

UINT_PTR SetTimer(                      UINT_PTR nIDEvent,//一个非0的数字标志这个定时器             UINT uElapse,//指定时间间隔,以毫秒为单位             TIMERPROC lpTimerFunc//一般指定为null );

用法如下:

SetTimer(1,1000,NULL);

参数:

1:计时器的名称;

1000:时间间隔,单位是毫秒;

NULL:使用onTime函数。

在每次时间到1s时会触发WM_TIMER消息,其消息响应函数如下: 

void CXXX::OnTimer(UINT_PTR nIDEvent) {         // TODO: 在此添加消息处理程序代码和/或调用默认值                 // 此处加入如下代码就好了:                 switch(){                 case 1:                           //做该做的事情                             //当不需要的时候在此处调用KillTimer(1);                           break;                 default:                           break;                 }     CDialog::OnTimer(nIDEvent); }

当不需要计时器的时候调用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;    }}

转载于:https://my.oschina.net/shou1156226/blog/531617

你可能感兴趣的文章
python全栈-基础知识练习题(一)
查看>>
Python学习笔记23:多线程
查看>>
[推荐] - 技术书籍
查看>>
POJ-3723 Conscription---最大权森林---最小生成树
查看>>
python学习之最简单的获取本机ip信息的小程序
查看>>
分析.cpp文件编译生成的汇编文件里语句的作用
查看>>
mybatis 的加载与缓存
查看>>
Laravel之路由
查看>>
[XAML]命名空间xmlns
查看>>
Rabbitmq实现负载均衡与消息持久化
查看>>
重定向监听端口并持久化路由配置
查看>>
Activity-Flag标志位
查看>>
CentOS 安装 Hadoop 手记
查看>>
oracle 知识
查看>>
函数的逻辑读成零
查看>>
ANGULAR JS WATCH监听使用
查看>>
数据库表的设计
查看>>
事物、视图、索引、备份和恢复
查看>>
Could not find result map java.util.HashMap
查看>>
移动设备wap手机网页html5通过特殊链接:打电话,发短信,发邮件详细教程
查看>>