#include <wx/wx.h>
#include <wx/toolbook.h>
class Simple:public wxFrame
{
public:
Simple(const wxString& title);
protected:
void OnQuit(wxCommandEvent& event);
void OnChanged(wxBookCtrlEvent& event);
wxToolbook* book;
};
Simple::Simple(const wxString& title)
:wxFrame(NULL,-1,title)
{
wxImage::AddHandler(new wxPNGHandler);
wxImageList* ilMain = new wxImageList(16,16);
ilMain->Add(wxBitmap("add.png",wxBITMAP_TYPE_PNG));
ilMain->Add(wxBitmap("del.png",wxBITMAP_TYPE_PNG));
ilMain->Add(wxBitmap("edit.png",wxBITMAP_TYPE_PNG));
book = new wxToolbook(this,-1,wxPoint(-1,-1),wxSize(-1,-1));
book->SetImageList(ilMain);
wxToolBarBase* bar = book->GetToolBar();
bar->SetWindowStyle(wxTB_HORZ_LAYOUT|wxTB_HORZ_TEXT|wxTB_FLAT);//并排显示文字和图标,平面图标
MyGrid* grid1 = new MyGrid(book);
MyGrid* grid2 = new MyGrid(book);
wxPanel* pnl = new wxPanel(book);
wxTextCtrl* tc = new wxTextCtrl(pnl,-1,"",wxPoint(-1,-1),wxSize(-1,-1)
,wxTE_MULTILINE);
wxBoxSizer* bsPnl = new wxBoxSizer(wxHORIZONTAL);
bsPnl->Add(tc,1,wxEXPAND);
pnl->SetSizer(bsPnl);
book->AddPage(grid1,wxT("标签1"),false,0);
book->AddPage(grid2,wxT("标签2"),false,1);
book->AddPage(pnl,wxT("标签3"),false,2);
book->SetSelection(2);//调用此函数会产生页面更改事件
book->ChangeSelection(1);//调用此函数不产生页面更改事件
Bind(wxEVT_TOOLBOOK_PAGE_CHANGED
,wxBookCtrlEventHandler(Simple::OnChanged)
,this
,book->GetId()
);
Centre();
}
void Simple::OnChanged(wxBookCtrlEvent& event)
{
long index = book->GetSelection();
if(index !=-1)
{
wxMessageBox(book->GetPageText(index)
,wxString::Format("ID=%i ",index)
);
}else
{
wxMessageBox("Not found");
}
}