mfc的定时器功能,可以让程序周期性的执行一些功能。如定时采集数据,刷新界面等。我认为的好处,就是避免了使用多线程去实现那些功能。从而使编程变得更加的简单和可靠
下面介绍如何使用定时器Timer

新建一个mfc项目TestTimer。在主界面上增加一个进度条控件,一个开始按钮和一个停止按钮。实现点击开始按钮,进度条滚动,点击停止按钮,进度条停止滚动。

对进度条右键,点击添加变量

设置变量名为m_progress

双击开始按钮,添加事件处理程序,使用SetTimer创建定时器,其中1是创建的定时器ID,100是每个100毫秒触发一次定时器(发送WM_TIMER消息)

void CTestTimerDlg::OnBnClickedButton1()
{// TODO: 在此添加控件通知处理程序代码SetTimer(1,100,NULL);
}

双击停止按钮,添加事件处理程序,使用KillTimer销毁定时器,1是所要销毁的定时ID。

void CTestTimerDlg::OnBnClickedButton2()
{// TODO: 在此添加控件通知处理程序代码KillTimer(1);
}

之后就是通过覆写OnTimer函数来实现定时器触发后的操作,增加进度条滚动进度
在CTestTimerDlg类中声明OnTimer函数

public:void OnTimer(UINT_PTR nIDEvent);

实现定时器函数,通过switch语句判断不同定时器ID对应的不同操作(可以同时设置多个定时器)

void CTestTimerDlg::OnTimer(UINT_PTR nIDEvent){switch (nIDEvent){case 1:if (m_progress.GetPos() < 100){m_progress.SetPos(m_progress.GetPos() + 1);}else{m_progress.SetPos(0);}break;default:break;}
}

最重要的,建立定时器消息映射。没有以下语句,则即便定时器被成功创建,也不会执行OnTimer函数

BEGIN_MESSAGE_MAP(CTestTimerDlg, CDialog)...ON_WM_TIMER()
END_MESSAGE_MAP()

当然也可以自动覆写OnTimer函数,方法是,在类视图中,对CTestTimer类右键,属性,在属性页中,点击消息,找到WM_TIMER,点击添加OnTimer

之后系统会自动生成OnTimer函数,并且建立消息映射,我们只需要在OnTimer函数中写入相关代码就可以了
实现效果

祝大家,六一儿童节快乐!

MFC定时器Timer的使用相关推荐

  1. VS2010/MFC编程入门之四十四:定时器Timer

    前面一节鸡啄米讲了CTime类和CTimeSpan类的使用,本节继续讲与时间有关的定时器.定时器并不是一个类,主要考虑到,提起时间的话就不能不说定时器,所以就把它放到CTime和CTimeSpan之后 ...

  2. MFC 定时器用法 SetTimer、KillTimer

    什么时候我们需要用到SetTimer函数呢?当你需要每个一段时间执行一件事的的时候就需要使用SetTimer函数了. 使用定时器的方法比较简单,通常告诉WINDOWS一个时间间隔,然后WINDOWS以 ...

  3. MFC 定时器使用方式

    MFC 定时器使用方式 2011-04-30 12:24:58|  分类: 默认分类 |  标签: |字号大中小 订阅 用SetTimer函数 创建定时器 参数1表示定时器的ID,参数2表示时间间隔, ...

  4. 【Android 异步操作】Timer 定时器 ( Timer 与 TimerTask 基本使用 | Timer 定时器常用用法 | Timer 源码分析 )

    文章目录 一.Timer 定时器基本使用 二.Timer 定时器常用用法 三.Timer 源码分析 四.Timer 部分源码注释 五.源码及资源下载 参考文档 : Timer 定时器 API 文档 T ...

  5. Java定时器Timer

    Java定时器Timer 在JDK库中,Timer类主要负责计划任务的功能,也就是在指定的时开始执行某一个任务.Timer类的主要作用就是设置计划任务,但封装任务的类却是TimerTask类,执行计划 ...

  6. python定时器 是线程吗_python线程定时器Timer(32)

    相对前面几篇python线程内容而言,本片内容相对比较简单,定时器 – 顾名思义,必然用于定时任务. 一.线程定时器Timer原理 原理比较简单,指定时间间隔后启动线程!适用场景:完成定时任务,例如: ...

  7. python定时器timer_python通过线程实现定时器timer的方法

    本文实例讲述了python通过线程实现定时器timer的方法.分享给大家供大家参考.具体分析如下: 这个python类实现了一个定时器效果,调用非常简单,可以让系统定时执行指定的函数 下面介绍以thr ...

  8. 第5章 定时器Timer

    第5章 定时器Timer 标签: Java多线程编程 <Java多线程编程核心技术> 个人笔记 第5章 定时器Timer 定时器Timer的使用 方法scheduleTimerTask t ...

  9. python中实现定时器Timer

    实现定时器最简单的办法是就是循环中间嵌time.sleep(seconds), 这里我就不赘述了 # encoding: UTF-8 import threading #Timer(定时器)是Thre ...

最新文章

  1. 2018年,BAT在人工智能领域交出哪些答卷?
  2. 诺依曼体系结构、哈佛体系结构与改进型哈佛结构之间的区别
  3. AFN2.0到3.0的迁移
  4. java小程序开发平台,隔壁都馋哭了
  5. MYSQL 【汇总数据】 【分组数据】 学习记录
  6. 【原创】利用typeface实现不同字体的调用显示及String转换为Unicode
  7. Golang并发编程组件
  8. Silverlight中调用ClientBin下非xap内的xml的方法
  9. 学习笔记--数据结构与算法基础(青岛大学-王卓)--第八章排序
  10. mimics能导出什么格式_Mimics到底支持怎样的图像格式(修正版) – MATLAB中文论坛...
  11. 常用的并发测试工具及压测方法
  12. java斗地主案例_Java斗地主案例
  13. android怎么监听多点触摸_Android笔记:触摸事件的分析与总结----多点触控
  14. 卡内基梅隆大学计算机专业类别,卡内基梅隆大学计算机专业优势介绍
  15. 科技感海报大合集,分分钟做出高端海报
  16. 不等距双杆模型_电磁感应之双杆模型ppt课件
  17. linux 系统安全以及应用
  18. os.system() 和os.popen()的区别
  19. 自己动手做个小游戏(1)
  20. 持续学习相关文章汇总

热门文章

  1. 【摘自网易】在我最美丽的时候,遇见你
  2. django集成vue,实现前后端分离开发
  3. 我与python约个会:10.程序编程基础4~变量运算符
  4. 用StopWatch统计耗时,比System.currentTimeMillis好用
  5. 解决SELinux is preventing *** 的问题
  6. easypoi导出word表格
  7. 羞辱性加薪_公开羞辱公司会提高安全性吗?
  8. mysql的行转列_mysql查询:行转列,列转行,请不要再羞辱我了
  9. android多媒体框架介绍(五)显示图形系统之SurfaceFlinger初步介绍
  10. 链路两段不同网段怎么通信_静态路由跨网段访问配置方法和命令