4

作为 wxWidgets 的新手,我需要一些示例代码来说明如何让 wxTimer 正常工作。

该参考提供了 3 种使用方法,但不包括其中任何一种的示例代码。最理想的是,我想让方法 2 工作。

4

1 回答 1

9

(来自样本/小部件/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);

在文档中,我认为要理解的第二种方法是您的主窗口对象 ISA wxEventHandler,因此当您创建计时器时,计时器会将其自身连接到“this”(您的窗口)。现在事件正在进入您的窗口,EVT_TIMER 可能是将其连接到您的 OnProgressTimer 函数的最有效方法。

您也需要调用该函数...

void GaugeWidgetsPage::OnProgressTimer(wxTimerEvent& event)
{

应该不会比这更困难。

于 2009-02-21T01:57:16.927 回答