wxTimer的应用-动态输出时间

来源:互联网 发布:最近好听的网络歌曲 编辑:程序博客网 时间:2024/06/07 06:40
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://axiii.blog.51cto.com/396236/108663
wxWidgets的wxTimer使用起来很奇怪,必须把事件绑定在某个widget的事件列表之内.所以只能虚构一个类,继承于某个widget,例如wxFrame,然后不让wxFrame显示出来.
 
 
timer.h
#ifndef TIMER_H_INCLUDED
#define TIMER_H_INCLUDED


class Netsim : public wxApp
{
public:
        virtual bool OnInit();
        void on_timer(wxTimerEvent& f_event);
};


class Timer : public wxFrame
{
public:
        Timer();
        DECLARE_EVENT_TABLE()

private:
        wxTimer m_timer;
};


DECLARE_APP(Netsim)

BEGIN_EVENT_TABLE(Timer, wxFrame)
        EVT_TIMER(wxID_ANY, Netsim::on_timer)
END_EVENT_TABLE()


#endif // TIMER_H_INCLUDED
 
timer.cpp
#include <iostream>

#include "wx/wxprec.h"

#ifndef WX_PRECOMP
#include "wx/wx.h"
#endif
#include "timer.h"
#include <wx/datetime.h>

IMPLEMENT_APP(Netsim)


bool Netsim::OnInit(){
        Timer* foo = new Timer();
        wxFrame* frame = new wxFrame((wxFrame*) NULL, -1, _T("Hello wxWidgets World"));
        frame->CreateStatusBar();
        frame->SetStatusText(_T("Hello World"));
        //frame->Show(TRUE);
        //SetTopWindow(frame);
        return true;
}

void Netsim::on_timer( wxTimerEvent& f_event )
{
        //获取当前系统时间
        wxString nowTime;
        wxDateTime now = wxDateTime::Now();
          //中国时区GMT+8,常数为A_WST
        nowTime=now.Format("%c", wxDateTime::A_WST).c_str();
        //动态在控制台输出当前时间
        std::cout << nowTime << std::endl;
}

Timer::Timer() : wxFrame((wxWindow *)NULL, wxID_ANY, _T("")), m_timer(this)
{
        //时间间隔1秒
        m_timer.Start(1000);
}
 
 

本文出自 “阿汐的博客” 博客,请务必保留此出处http://axiii.blog.51cto.com/396236/108663

本文出自 51CTO.COM技术博客

附件下载:
  代码备忘
原创粉丝点击