非窗口类中使用定时器的方法

非窗口类中使用定时器的 方法 (一)         jemmylau(原作)      
       
  关键字           Visual   C++   MFC   类   定时器   静态函数静态成员函数   静态数据成员   回调函数   映射类    
       
   
       
  非窗口类中使用定时器的方法  
   
  作者:刘辉  
   
  (网进科技   江苏   昆山   Email:jemmyliu@163.com   完成时间:2003年3月12日)  
   
          摘     要     本文主要通过一些简单的例子,介绍了如何在Visual   C++的窗口和非窗口类中使用定时器。重点介绍了如何用静态成员函数和静态数据成员在非窗口类中使用定时器,同时,又介绍了与定时器相关的知识,例如回调函数,C++类中的静态成员,以及模板类中的映射类等。  
   
  关键字     C++   类   定时器   静态函数静态成员函数   静态数据成员   回调函数   映射类  
   
          摘     要:This   page   introduce   how   to   use   timer   in   window   class   and   none   window   class   of   Visual   C++   by   some   simple   samples.   Use   timer   in   none   window   class   with   static   member   variable   and   static   member   function   is   the   important   point.   At   the   same   time,   it   also   tell   about   of   some   knowledge   such   as   about   timer,   callback   function,   static   member   of   C++   class   and   map   class   CMap   of   template   class.  
   
  关键字:C++   Class   Timer   static   CALLBACK   CMap  
   
  1.   引言  
   
          定时器在Windows   的程序中的作用不可忽略,也随处可见。设定一个时间间隔每0.5秒或者1秒钟刷新一次时钟,这样就可以完成一个简单的电子钟程序。在不同的编程工具中定时器的用法也不同,Visual   C++中也给 我们 提供了实现这种功能的方法,而且方法不只一种。在窗口类中是使用定时器比较很简单,用SetTimer()设置了定时器之后,并在Class   Wizard中添加了OnTimer消息映射后,您就可以在映射函数OnTimer()中添加代码实现,来定时完成您的任务,而且还支持任意多个定时器,这种方法大家可能都会用。但是在非窗口的类中,使用定时器就没那么简单了,在类消息映射中就找不到OnTimer()方法了,类中也没有hWnd这个属性,SetTimer()也不能象原来那样使用了,下面给出了一种既不破坏类的完整性的同时又能巧妙的使用定时器的方法。  
   
  2.   相关知识  
   
          在非窗口类中使用定时器,需要了解的知识比较多。首先非窗口类中没有消息映射,也没有象CWnd类具有的SetTimer()方法来设置定时器。没有消息映射,就只能靠我们自己定义的回调函数来处理定时器的消息,因此大家有必要了解一下回调函数的概念。因为回调函数只能用全局函数或者静态成员函数来实现,为了维持类的完整性,使用类的静态成员函数来作为回调函数,所以我们又需要了解一下静态数据成员和静态成员函数的性质。又因为定时器是在我们的程序中产生的,这又需要来 管理 定时器,所以又用到了映射表类CMap,因此介绍一下CMap的简单用法也是必不可少的。  
   
  2.1   回调函数  
   
  所谓回调函数就是按照一定的形式由你定义并编写实现内容,当发生某种事件时,而由系统或其它函数来调用的函数。  
   
  使用回调函数实际上就是在调用某个函数(通常是API函数)时,将自己编写的一个函数(也就是回调函数)的地址作为参数传递给那个函数。而那个函数在需要的时候,也就是某种事情发生的时候,利用传递的函数地址调用回调函数,这时你可以利

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值