WEB开发网
开发学院软件开发VC 非窗口类中使用定时器的方法及相关知识的介绍 阅读

非窗口类中使用定时器的方法及相关知识的介绍

 2006-07-20 11:38:11 来源:WEB开发网   
核心提示: 二、相关知识在非窗口类中使用定时器,需要了解的知识比较多,非窗口类中使用定时器的方法及相关知识的介绍(2),首先非窗口类中没有消息映射,也没有象CWnd类具有的SetTimer()方法来设置定时器,该副本为这个类的所有对象实例所共享,而对于非静态成员,没有消息映射,就只能靠我们自己定义的回

二、相关知识

在非窗口类中使用定时器,需要了解的知识比较多。首先非窗口类中没有消息映射,也没有象CWnd类具有的SetTimer()方法来设置定时器。没有消息映射,就只能靠我们自己定义的回调函数来处理定时器的消息,因此大家有必要了解一下回调函数的概念。因为回调函数只能用全局函数或者静态成员函数来实现,为了维持类的完整性,使用类的静态成员函数来作为回调函数,所以我们又需要了解一下静态数据成员和静态成员函数的性质。又因为定时器是在我们的程序中产生的,这又需要来管理定时器,所以又用到了映射表类CMap,因此介绍一下CMap的简单用法也是必不可少的。

2.1 回调函数

所谓回调函数就是按照一定的形式由你定义并编写实现内容,当发生某种事件时,而由系统或其它函数来调用的函数。

使用回调函数实际上就是在调用某个函数(通常是API函数)时,将自己编写的一个函数(也就是回调函数)的地址作为参数传递给那个函数。而那个函数在需要的时候,也就是某种事情发生的时候,利用传递的函数地址调用回调函数,这时你可以利用这个机会在回调函数中处理消息或完成一定的操作。回调函数只能是全局函数,或者是静态函数,因为这个函数只是在这个类中使用,所以为了维护类的完整性,我们用类的静态成员函数来做回调函数。

2.2 C++类中的静态成员

在C语言中,声明一个数据为静态类型,意味着该变量的生存周期是静态的,即在程序的开始时即分配,到程序终止时才释放。但在C++中,声明一个类中的成员为静态类型,则意味着该类的所有实例只有该成员的一个拷贝。也就是说,不管应用程序中创建了这个类的多少个对象,其静态成员只有一个副本,该副本为这个类的所有对象实例所共享,而对于非静态成员,每个类对象实例都有自己的拷贝。例如:

上一页  1 2 3 4 5 6 7  下一页

Tags:窗口 使用 定时器

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接