代码之家  ›  专栏  ›  技术社区  ›  DShook

基本wxWidgets定时器

  •  2
  • DShook  · 技术社区  · 17 年前

    The reference

    1 回复  |  直到 17 年前
        1
  •  9
  •   Jim Carroll    17 年前

    (来自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);
    

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

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

    void GaugeWidgetsPage::OnProgressTimer(wxTimerEvent& event)
    {
    

    不应该比这更难。