定时器 settimer ontimer killtimer
2017-09-04 12:43
489 查看
文章出处:http://blog.sina.com.cn/s/blog_86f7b9c70101eob1.html
定时器简介
定时器,可以帮助开发者或者用户定时完成某项任务。在使用定时器时,我们可以给系统传入一个时间间隔数据,然后系统就会在每个此时间间隔后触发定时处理程序,实现周期性的自动操作。例如,我们可以在数据采集系统中,为定时器设置定时采集时间间隔为1个小时,那么每隔1个小时系统就会采集一次数据,这样就可以在无人操作的情况下准确的进行操作。
MFC定时器:VS2010编程中,我们可以使用MFC的CWnd类提供的成员函数SetTimer实现定时器功能,也可以使用Windows API函数SetTimer来实现。两者使用方法实际上很类似,但也有不同。
CWnd类的SetTimer成员函数只能在CWnd类或其派生类中调用,而API函数SetTimer则没有这个限制,这是一个很重要的区别。因为本教程主要是讲解MFC编程,所以这里就先重点讲解MFC定时器的用法。
一.我们就做一个gif 动画一样的吧! 这里的 gif分解后下载
http://pan.baidu.com/s/1bnkvNJp
1 .我们先新建一个mfc 基于对话框的应用程序。
2 . 删除对话框上的控件 , 改对话框的属性Border ->None
3 .添加一个消息:WM_TIMER -> OnTimer
4 .把图片放在工程的res目录下;
并在工程中添加资源,把这6张图片添加到资源目录下;然后右键->id= 资源符号 ->那几张图片的的id(我的是129-134)
5 .在class 中添加
并在构造函数中添加
6.在函数CxxxxDlg::OnInitDialog()中 添加:
定时器
killtimer
7.在函数 CxxxDlg::OnTimer(UINT_PTR nIDEvent) 函数中添加 :
点击ontimer介绍
8.运行,效果就出来了。像gif 一样的动。
例子源码:http://pan.baidu.com/s/1gdqZoC7
定时器简介
定时器,可以帮助开发者或者用户定时完成某项任务。在使用定时器时,我们可以给系统传入一个时间间隔数据,然后系统就会在每个此时间间隔后触发定时处理程序,实现周期性的自动操作。例如,我们可以在数据采集系统中,为定时器设置定时采集时间间隔为1个小时,那么每隔1个小时系统就会采集一次数据,这样就可以在无人操作的情况下准确的进行操作。
MFC定时器:VS2010编程中,我们可以使用MFC的CWnd类提供的成员函数SetTimer实现定时器功能,也可以使用Windows API函数SetTimer来实现。两者使用方法实际上很类似,但也有不同。
CWnd类的SetTimer成员函数只能在CWnd类或其派生类中调用,而API函数SetTimer则没有这个限制,这是一个很重要的区别。因为本教程主要是讲解MFC编程,所以这里就先重点讲解MFC定时器的用法。
一.我们就做一个gif 动画一样的吧! 这里的 gif分解后下载
http://pan.baidu.com/s/1bnkvNJp
1 .我们先新建一个mfc 基于对话框的应用程序。
2 . 删除对话框上的控件 , 改对话框的属性Border ->None
3 .添加一个消息:WM_TIMER -> OnTimer
4 .把图片放在工程的res目录下;
并在工程中添加资源,把这6张图片添加到资源目录下;然后右键->id= 资源符号 ->那几张图片的的id(我的是129-134)
5 .在class 中添加
class xxx { public: int m_bitid; }
并在构造函数中添加
xxxdlg::xxdlg() { m_bitid=128; //这里我令他的初始值比id小一个数 }
6.在函数CxxxxDlg::OnInitDialog()中 添加:
{ this->SetTimer(1,100,NULL); //设置定时器。 //这里时间100毫秒,可以自己调整,调节到适合的最好。 //killtimer 我这里没有用到。 }
定时器
killtimer
7.在函数 CxxxDlg::OnTimer(UINT_PTR nIDEvent) 函数中添加 :
点击ontimer介绍
{ // TODO: 在此添加消息处理程序代码和/或调用默认值 CClientDC dc(this); CRect rect; CBrush brush; CBitmap bitmap; if(m_bitid<134) m_bitid++; ///让id++,循环读取这6张图片 else m_bitid=129; //要是+到了最后一张,我们让它回到第一张 bitmap.LoadBitmapW(m_bitid); //加载图片资源,根据这个变化的ID brush.CreatePatternBrush(&bitmap); this->GetClientRect(rect); switch (nIDEvent) { case 1: dc.FillRect(rect,&brush); break; //这里当然就是贴图,定时器的响应 } CDialogEx::OnTimer(nIDEvent); }
8.运行,效果就出来了。像gif 一样的动。
mfc 的定时器应用很广泛,使用也并不困难,灵活运用可以做出来很炫的效果,定时器不只是做界面,用到其他地方也有很好的效果。
例子源码:http://pan.baidu.com/s/1gdqZoC7
相关文章推荐
- settimer ontimnr killtimer
- MFC定时器使用--SetTimer && KillTimer && 进度条CProgressCtrl
- 猎豹MFC--定时器SetTimer KillTimer
- SetTimer and KillTimer
- 定时器与多线程 SetTimer and Multi-Thread 每个线程独立使用一个定时器
- ns级定时器,CreateWaitableTimer和SetWaitableTimer
- VC定时器的用法:SetTimer和Ontimer .
- windows 下,用CreateWaitableTimer SetWaitableTimer 创建定时器(用轮询的办法保持高精度)
- MFC定时器——OnTimer和SetTimer的用法
- 定时器的使用 之 SetWaitableTimer
- MFC中OnTimer定时器用法
- 定时器小结 setitimer/getitimer Or timer_settime/timer_gettime
- VC/MFC 定时器设置及OnTimer使用
- 逆--Win7x64 UserTimer结构获取,NtUserSetTimer,_SetTimer,InternalSetTimer 枚举进程定时器
- SetTimer killTimer用法
- 对话框项目集成完成,定时器 OnTimer使用顺利
- 定时器与多线程 SetTimer and Multi-Thread 每个线程独立使用一个定时器
- 关于OnTimer()使用
- java中的定时器Timer
- android中ToolBar设置setNavigationOnClickListener()方法不起作用