(一):OnTimer类

1.打开对应对话框的类向导ClassWizard。

2.在消息映射MessageMaps中添加消息Message:WM_TIMER。

3.程序代码中将自动添加函数OnTimer(UINT nIDEvent),在该函数内编写代码实现计时器功能。

函数代码一般写在switch...case中,nIDEvent表示计时器ID号,从而区分不同计时器的实现内容。

若不使用switch...case结构,则表示实现ID为1的计时器功能。

整个函数代码如下:

void CCountDown::OnTimer(UINT nIDEvent)
{switch (nIDEvent){case 1:{ //代码实现break;}default:break;}CDialog::OnTimer(nIDEvent);
}

4.在要开始计时器的地方调用:

SetTimer(1,1000,NULL);//第一个参数表示计时器的ID;

第二个参数表示间隔时间(ms);

第三个表示调用的函数,NULL表示默认调用OnTimer函数。

5.在要结束计时器的地方调用:

KillTimer(1);)        //参数表示计时器的ID

(2):ontimer实例:

(1)   创建一个基于对话框的应用程序。

(2)   在对话框界面添加一个文本框和两个按钮。

(3)   文本框添加一个变量m_nTime。

(4)   双击“设置定时器”按钮,添加如下代码:

void CTimeDlg::OnButton1()
{// TODO: Add your control notification handler code hereUpdateData(false);//取消定时器KillTimer(1);//设置定时器SetTimer(1,1000,NULL);}(5)   双击“取消定时器”按钮,添加如下代码:void CTimeDlg::OnButton1()
{// TODO: Add your control notification handler code hereUpdateData(false);//取消定时器KillTimer(1);
}(6)   添加一个静态变量n,申明如下:static n=0;(7)   添加WM_TIMER事件,方法为:右键单击对话框空白部分—>Event,在弹出的对话框左边选择WM_TIMER双击,右边就出现WM_TIMER,再双击添加如下代码:void CTimeDlg::OnTimer(UINT nIDEvent){// TODO: Add your message handler code here and/or call defaultif(nIDEvent==1){n++;m_nTime=n;UpdateData(false);}CDialog::OnTimer(nIDEvent);
}

运行结果:

点击“设置定时器”文本框数字每隔1秒自动增1,点击“取消定时器”,数字停止增加,再点击“设置定时器”,数字接着继续增加。如果每次设置都从0重新开始,只要在“设置定时器”按钮把n值重新赋值0即可。

Windows各种计时器相关推荐

  1. WINDOWS程式设计--计时器

    计时器 Microsoft Windows计时器是一种输入设备,它周期性地在每经过一个指定的时间间隔後就通知应用程式一次.您的程式将时间间隔告诉Windows,例如「每10秒钟通知我一声」,然後Win ...

  2. 【笨嘴拙舌WINDOWS】计时器精度

    WINDOWS的大多数系统并非实时操作系统,所以不能规定计算机在某个精确到纳秒的时间让计算机做某项任务,如果规定了时间WINDOWS也将需要在完成了线程调度后,经行任务执行! 也就是说,如果你的应用程 ...

  3. 服务器计时器、Windows 计时器和线程计时器

    原文地址:MSDN Visual Studio 和 .NET Framework 中包含三个计时器控件: 可添加到"工具箱"中的基于服务器的计时器 始终位于"工具箱&qu ...

  4. asp.net 中的几种计时器

    服务器计时器.Windows 计时器和线程计时器 在 Visual Studio 和 .NET Framework 中有三种计时器控件:基于服务器的计时器(可以在"工具箱"的&qu ...

  5. 服务器未能保存文件夹,Exchange服务器提示 Event ID 50 Ntfs (Ntfs) {延迟写入失败} Windows 无法保存文件...

    Linux服务器安装mysql 下载和安装mysql源 先下载 mysql源安装包 wget https://dev.mysql.com/get/mysql57-community-release-e ...

  6. Win32 计时器消息 - WM_TIMER,SetTimer

    注:以下内容为学习笔记,多数是从书本.资料中得来,只为加深印象,及日后参考.然而本人表达能力较差,写的不好.因非翻译.非转载,只好选原创,但多数乃摘抄,实为惭愧.但若能帮助一二访客,幸甚! 以下内容多 ...

  7. C#中的线程(三) 使用多线程

    第三部分:使用多线程 1.  单元模式和Windows Forms 单元模式线程是一个自动线程安全机制, 非常贴近于COM--Microsoft的遗留下的组件对象模型.尽管.NET最大地放弃摆脱了遗留 ...

  8. 计算机电源管理设置,关于电源管理的电源管理计划设置

    关于电源管理的电源管理计划设置 12/19/2014 本文内容 应用到: System Center Configuration Manager 2007 R3 Configuration Manag ...

  9. Excel Application对象应用

    Application对象是Excel对象模型中最高层级的对象,代表Excel应用程序自身,也包含组成工作簿的许多部分,包括工作簿.工作表.单元格集合以及它们包含的数据. Application对象包 ...

最新文章

  1. 数据流图中flow不显示文字_发动机系统数据流一般参数的解读
  2. linux网络_防火墙-iptables基础
  3. wxWidgets:wxTrackable类用法
  4. tp5缓存在html怎么用,tp5.1缓存Cache的使用
  5. 【代码审计】PHP代码审计---基础记录
  6. 少锁定Java对象池
  7. 服务器应用日志清理,Linux下Tomcat日志定期清理
  8. 在SqlServer 2008中将数据导成脚本
  9. 【华为云技术分享】《跟唐老师学习云网络》 - 我的网络概念
  10. YApi--使用YApi的目的
  11. 几种关系型数据库比较
  12. python wlsxwriter_python xlsxwriter模块的使用
  13. 设置共享文件夹以计算机用户名和密码访问,Win10正式版系统怎么设置共享文件夹密码访问...
  14. 推荐几款常用在线代码转换工具
  15. 2017-2018-2 20179306 《网络攻防技术》第八周作业
  16. 二月(不积跬步无以至千里)
  17. 锐龙r5 5500u相当于英特尔什么水平 r55500u属于哪个档次
  18. 初创跨境电商公司,让Callnovo的海外客服成为您出海的桨
  19. AT24C64-EEPROM阅读记录
  20. 【路径规划】基于matlab蚁群算法栅格地图路径规划及避障【含Matlab源码 2088期】

热门文章

  1. 20165105第三周学习总结
  2. 2013年大数据全球技术峰会观后感
  3. “中国智造”为System x提供创新源动力
  4. js学习笔记15----子节点和兄弟节点的操作
  5. Angularjs实现下拉框自动匹配键值对对象技巧
  6. word2013标题编号变成黑框
  7. 工信部印发《信息安全产业“十二五”发展规划》
  8. 用vmware-converter4把linux 迁移到ESX4.1中
  9. 网络OS显神威 认识Linux远程桌面控制
  10. eclipse 查找