在网上看了settimer的一些用法发现能用的真没有,,,,可能是我没找对地方,大部分都是无脑复制粘贴,浪费了很多时间,如果你是一个对这种定时器一无所知的小白,那么请你看进来一定不会让你失望的!

  1. 实用settimer的第一步引入头文件:#include <Windows.h>

  2. 然后我们来看一下settimer及其回调函数的使用:  

      首先我们来看settimer的原型:(如下所示)(这个仅仅是窗口的一个定时器函数,我们现在是想把它用到控制台程序的而一般没有窗口的线程系统是不会给他指定消息队列的)

 UINT_PTR SetTimer(
HWND hWnd, // 窗口句柄
UINT_PTR nIDEvent, // 定时器ID,多个定时器时,可以通过该ID判断是哪个定时器
UINT nElapse, // 时间间隔,单位为毫秒
TIMERPROC lpTimerFunc // 回调函数
}

      其函数的参数意义就如同上面所说的一样,我们常用的用法是SetTimer(m_hWnd,1,1000,NULL); //一个1秒触发一次的定时器(在MFC中是不一样的这一点要注意),若最后一个参数是NULL,那么则默认调用的是ontime函数,但是当我们要调用我们自己的回调函数时可以用如下的函数:void CALLBACK TimerProc(HWND hWnd,UINT nMsg,UINT nTimerid,DWORD dwTime) {   里面写下自己的内容   };网上大部分就是写到这里其实只但这里我们并不能成功的调用自己的回调函数,还要经过如下操作才可以:(虽然使用了SetTimer,但是没有对WM_TIMER消息进行分发,所以不会触发回调函数)

 void CALLBACK TimerProc(HWND hWnd,UINT nMsg,UINT nTimerid,DWORD dwTime)
{
printf("%s","abc"); }
void main()
{
SetTimer(, , , &TimerProc);
MSG msg;
while(GetMessage(&msg,NULL,,))
{
if(msg.message==WM_TIMER)
{
DispatchMessage(&msg);
}
}
}

     其中的DispatchMessage(&msg)就是分发消息,对vM_TIMER消息进行分发,分发到回调函数,在其中要注意GetMessage()是阻塞的,这个函数会一直等待消息知道收到消息为止,而非阻塞的是函数PeekMessage()函数,仅仅是检测是否有消息而不是一直等待消息。

参考文章:https://blog.csdn.net/dog250/article/details/5303603

最新文章

  1. [原创]MYSQL的简单入门
  2. pdf2htmlEx安装及测试
  3. Linux_用户级_常用命令(3):mkdir
  4. git 教程(6)--管理修改
  5. 5.8---像素设定(CC150)
  6. cent0s7 显卡驱动导致重启黑屏
  7. Oracle中not exists 与not in 的使用情况
  8. 一、cocos2d-x 3.0 final使用httpclient编译到android,须要用到的android.mk
  9. Java学习笔记(1)——基本数据类型
  10. 安卓的UI界面开发(初学者推荐)
  11. iOS面试必看经典试题分析
  12. redis 订阅与发布
  13. 新手必须掌握的Linux命令
  14. SpringBoot注册Windows服务和启动报错的原因
  15. [jzoj]5478.【NOIP2017提高组正式赛】列队
  16. 自学工业控制网络之路1.3-典型的现场总线介绍FF
  17. 稀疏 部分 Checkout
  18. kafka 面试题 无答案
  19. The way to Go(7): 变量
  20. 2017&quot;百度之星&quot;程序设计大赛 - 资格赛-度度熊与邪恶大魔王(dp+后缀最小值)

热门文章

  1. pyqt5在QMainWindow中布局的问题
  2. Swift3.0基础语法学习&lt;一&gt;
  3. configmap使用-完整的configmap文档
  4. jdk1.8-ArrayDeque
  5. JavaScript基础入门08
  6. @Results注解使用方法
  7. centos下kill、killall、pkill命令区别
  8. python爬虫概述
  9. @Conditional注解
  10. SQLServer2008R2复制发布订阅(含局域网跨网段)调试总结