八、wxWidgets事件之动态绑定

一、main.h
#include <wx/wx.h>

class MyApp:public wxApp
{
public:
    virtual bool OnInit();
};
 

二、main.cpp
#include "main.h"
#include "MyFrame.h"

wxIMPLEMENT_APP(MyApp);

bool MyApp::OnInit()
{
    MyFrame *frame = new MyFrame("my frame");
    frame->Show(true);

    return true;

}
 

三、myframe.h
class MyFrame:public wxFrame
{
public:
    MyFrame(const wxString &title);
protected:
    void OnAbout(wxCommandEvent &event);//1声明事件处理函数
    void OnExit(wxCommandEvent &event);

};

四、myframe.cpp
#include <wx/wx.h>
#include "myframe.h"


MyFrame::MyFrame(const wxString &title)
    :wxFrame(NULL,wxID_ANY,title,wxDefaultPosition,wxSize(200,150))
{
    wxPanel *panel = new wxPanel(this,wxID_ANY,wxDefaultPosition,wxSize(100,100));

    //*** 2 事件动态绑定按钮
    wxButton *button = new wxButton;
    button->Create(panel,wxID_ABOUT,"a button");//wxID_ABOUT也要可以用wxID_ANY
    //***button事件动态绑定方法1***
    button->Bind(wxEVT_COMMAND_BUTTON_CLICKED,MyFrame::OnAbout,this);


    //*** 2-4事件静态绑定按钮 ***
    wxButton *btnExit = new wxButton;
    btnExit->Create(panel,wxID_EXIT,"Exit"
                    ,wxPoint(0,button->GetPosition().y + button->GetSize().GetHeight())
            );
    //** button事件动态绑定方式2 ***
//    Bind(wxEVT_COMMAND_BUTTON_CLICKED,MyFrame::OnAbout,this,wxID_EXIT);

    Centre();

}


void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
{
    wxMessageBox("this is a message.");
}

void MyFrame::OnExit(wxCommandEvent &event)
{
    Close(true);
}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值