基本的wxWidgets计时器

时间:2009-02-20 22:38:31

标签: wxwidgets timer

成为wxWidgets的新手我需要一些示例代码来说明如何使wxTimer工作。

The reference提供了三种使用它的方法,但不包含其中任何一种的示例代码。最理想的是,我想让方法2工作。

1 个答案:

答案 0 :(得分:7)

(来自samples / widgets / gauge.cpp:)

设置事件常量

enum
{ 
    GaugePage_Reset = wxID_HIGHEST,
    GaugePage_Progress,

将事件连接到您的成员函数(使用您的事件常量)

EVT_TIMER(GaugePage_Timer, GaugeWidgetsPage::OnProgressTimer)

然后你需要创建并启动你的计时器..

static const int INTERVAL = 300; // milliseconds
m_timer = new wxTimer(this, GaugePage_Timer);
m_timer->Start(INTERVAL);

在文档中,我认为要理解的第二种方法是你的主要Window对象ISA wxEventHandler,所以当你创建它时,计时器自己连接到'this'(你的Window)。既然事件正在进入你的窗口,EVT_TIMER可能是将它连接到OnProgressTimer函数的最有效方法。

你也需要这个函数来调用......

void GaugeWidgetsPage::OnProgressTimer(wxTimerEvent& event)
{

这不应该比那更困难。