imagelist配合treeview是经常用到,为了不忘记,写个简单的例子。
目标:创建一个wxtreectrl和button,点击button,在tree控件的根节点下建一个子节点。
效果图如下:
代码片断如下:
用到的头文件:
#include <wx/treectrl.h>
#include <wx/imaglist.h>
#include <wx/image.h>
#include <wx/treebase.h>
#include <wx/button.h>
定义的一些变量:
private:
enum
{
idButtonAdd=1010,
};
wxTreeCtrl* m_treectrl1;
wxImageList* m_imagelist1;
wxTreeItemId rootitemid;
wxButton* m_button1;
void OnClickAdd(wxCommandEvent& event);
CPP实现程序中的代码:
wxImage::AddHandler(new wxPNGHandler());
wxBoxSizer* bSizer1;
bSizer1 = new wxBoxSizer( wxVERTICAL );
m_imagelist1=new wxImageList(20,20,true,1);
m_imagelist1->Add(wxBitmap("PNG_CLASS",wxBITMAP_TYPE_PNG_RESOURCE));
m_imagelist1->Add(wxBitmap("PNG_SONG",wxBITMAP_TYPE_PNG_RESOURCE));
m_treectrl1=new wxTreeCtrl( this, wxID_ANY, wxDefaultPosition, wxDefaultSize,wxTR_HAS_BUTTONS|wxTR_EDIT_LABELS);
m_treectrl1->AssignImageList(m_imagelist1);
rootitemid=m_treectrl1->AddRoot(_("所有分类和曲目"),0,0);
bSizer1->Add( m_treectrl1, 1, wxALL|wxEXPAND, 5 );
m_button1=new wxButton(this,idButtonAdd,_("add"),wxDefaultPosition,wxDefaultSize);
bSizer1->Add( m_button1, 0, wxALL, 5 );
this->SetSizer( bSizer1 );
this->Layout();
this->Centre( wxBOTH );
//增加函数
void testtreeFrame::OnClickAdd(wxCommandEvent &event)
{
wxTreeItemId itemid=m_treectrl1->AppendItem(rootitemid,_("新建一个分类"),1,1);
}