33、wxWidgets小部件之wxListView

 文档原文:

This class currently simply presents a simpler to use interface for the wxListCtrl – it can be thought of as a façade for that complicated class.

Using it is preferable to using wxListCtrl directly whenever possible because in the future some ports might implement wxListView but not the full set of wxListCtrl features.

Other than different interface, this class is identical to wxListCtrl. In particular, it uses the same events, same window styles and so on.

意思是推荐使用wxListView。没感觉啥差别啊,有哪个大神知道能否告知一声么?

#include <wx/wx.h>
#include <wx/listctrl.h>

class Simple:public wxFrame
{
public:
    Simple(const wxString& title);


    void OnSelected(wxListEvent& event);
    wxListView* lv;
};


Simple::Simple(const wxString& title)
    :wxFrame(NULL,-1,title)
{
    wxImage::AddHandler(new wxPNGHandler);

    wxImageList* ilListCtrl = new wxImageList(16,16);
    ilListCtrl->Add(wxBitmap("add.png",wxBITMAP_TYPE_PNG));
    ilListCtrl->Add(wxBitmap("edit.png",wxBITMAP_TYPE_PNG));
    ilListCtrl->Add(wxBitmap("del.png",wxBITMAP_TYPE_PNG));
    ilListCtrl->Add(wxBitmap("save.png",wxBITMAP_TYPE_PNG));

    wxListView* lv = new wxListView(this,-1,wxPoint(-1,-1),wxSize(-1,-1)
                                        ,wxLC_HRULES|wxLC_REPORT|wxLC_VRULES);
    lv->SetImageList(ilListCtrl,wxIMAGE_LIST_SMALL);//设置图标列表

    lv->AppendColumn("id");
    lv->SetColumnWidth(0,100);
    lv->AppendColumn("name",wxLIST_FORMAT_CENTER,100);

    wxListItem colID;
    colID.SetId(0);//必须设置
    colID.SetText(wxT("ID"));
    colID.SetWidth(100);//列宽
    colID.SetAlign(wxLIST_FORMAT_CENTER);

    wxListItem colName;
    colName.SetId(1);
    colName.SetText(wxT("名称"));
    colName.SetAlign(wxLIST_FORMAT_CENTER);
    colName.SetData(1);


    long index;
    index = lv->InsertItem(colID);
    lv->SetItem(index,1,wxT("名称1"),0);//此处设置的名称的图标
    lv->SetItemImage(index,1);//此处设置的行首图标

    index = lv->InsertItem(colName);
    lv->SetItem(index,1,wxT("名称2"),3);
    lv->SetItemImage(index,2);

    Bind(wxEVT_LIST_ITEM_SELECTED,Simple::OnSelected,this,lv->GetId());
    Centre();
}

void Simple::OnSelected(wxListEvent& event)
{
    long index = lv->GetFirstSelected();
    if(index !=-1){
        wxMessageBox(lv->GetItemText(index,0));
    }

}


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值