wxWidgets的timer有一个相应的类,就是wxTimer。
这个类的用法步骤:
1、在想要用到的类中用这个类创建一个对象,栈上的或者是堆里的,看你需要和喜欢
wxTimer timer;
2、包含这个对象的类能中用申明event的宏包含
DECLARE_EVENT_TABLE()
3、相应的消息处理申明的地方加入
EVT_TIMER(xxx, FUNC)
其中,xxx是timer的ID,FUNC是回调入口函数。
4、申明和实现回调函数。
按wxWidgets官方文档所说,这样子,当我们用
timer.Start(xxx)
启动这个timer后,我们的回调函数就会被相应的回调到。但是在笔者的程序中,仅这样做timer还是不能生效。需要再加入
5、在相应的窗口函数中,用上timer类的
SetOwner()
这个方法传入owner和timer ID。
用上这个后,如果启动了timer,就会回调函数就会不停的被call到。
最后,不要忘记不需要timer的时候,我们可以需要关闭这个计时器,如下
6、关闭计时器
timer.Stop()