31、wxWidgets小部件之wxListCtrl

31、wxWidgets小部件之wxListCtrl_第1张图片

 目前做的是一个简单的示例,以后用到了再深入研究。敬请谅解 

#include
#include

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

protected:

};

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));

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

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

    wxListItem colName;
    colName.SetId(1);
    colName.SetText(wxT("名称"));
    colName.SetAlign(wxLIST_FORMAT_CENTER);
    colName.SetData(1);
    lcData->InsertColumn(1,colName);

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

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


    Centre();
}
 

以下摘自官方文档

样式

此类支持以下样式:

  • wxLC_LIST :
    多列列表视图,带有可选的小图标。列是自动计算的,即您没有像 in 那样设置列 wxLC_REPORT。换句话说,与 wxListBox不同,列表会自动换 行。
  • wxLC_REPORT :
    单列或多列报告视图,带有可选标题。
  • wxLC_VIRTUAL :
    该应用程序按需提供项目文本。只能与 wxLC_REPORT.
  • wxLC_ICON :
    大图标视图,带有可选标签。
  • wxLC_SMALL_ICON :
    小图标视图,带有可选标签。
  • wxLC_ALIGN_TOP :
    图标与顶部对齐。Win32 默认,仅 Win32。
  • wxLC_ALIGN_LEFT :
    图标向左对齐。
  • wxLC_AUTOARRANGE :
    图标自行排列。仅限 Win32。
  • wxLC_EDIT_LABELS :
    标签是可编辑的:编辑开始时将通知应用程序。
  • wxLC_NO_HEADER :
    报告模式下没有标题。
  • wxLC_SINGLE_SEL :
    单选(默认为多选)。
  • wxLC_SORT_ASCENDING :
    按升序排序。(您仍然必须在 wxListCtrl::SortItems 中提供一个比较回调。)
  • wxLC_SORT_DESCENDING :
    按降序排序。(您仍然必须在 wxListCtrl::SortItems 中提供一个比较回调。)
  • wxLC_HRULES :
    在报告模式下在行之间绘制浅色水平线。
  • wxLC_VRULES :
    在报告模式下在列之间绘制浅色垂直规则。

此类发出的事件

以下事件处理程序宏将事件重定向到成员函数处理程序“ func ”,其原型如下:

void handlerFuncName( wxListEvent & event)

此类发出的事件的事件宏:

  • EVT_LIST_BEGIN_DRAG(id, func) :
    用鼠标左键开始拖动。处理 wxEVT_LIST_BEGIN_DRAG事件类型。
  • EVT_LIST_BEGIN_RDRAG(id, func) :
    用鼠标右键开始拖动。处理 wxEVT_LIST_BEGIN_RDRAG事件类型。
  • EVT_BEGIN_LABEL_EDIT(id, func) :
    开始编辑标签。这可以通过调用 Veto() 来防止。处理 wxEVT_LIST_BEGIN_LABEL_EDIT事件类型。
  • EVT_LIST_END_LABEL_EDIT(id, func) :
    完成编辑标签。这可以通过调用 Veto() 来防止。处理 wxEVT_LIST_END_LABEL_EDIT事件类型。
  • EVT_LIST_DELETE_ITEM(id, func) :
    删除了一个项目。处理 wxEVT_LIST_DELETE_ITEM事件类型。
  • EVT_LIST_DELETE_ALL_ITEMS(id, func) :
    所有项目都被删除。处理 wxEVT_LIST_DELETE_ALL_ITEMS事件类型。
  • EVT_LIST_ITEM_SELECTED(id, func) :
    该项目已被选中。处理 wxEVT_LIST_ITEM_SELECTED事件类型。
  • EVT_LIST_ITEM_DESELECTED(id, func) :
    该项目已被取消选择。处理 wxEVT_LIST_ITEM_DESELECTED事件类型。
  • EVT_LIST_ITEM_ACTIVATED(id, func) :
    该项目已被激活(ENTER 或双击)。处理 wxEVT_LIST_ITEM_ACTIVATED事件类型。
  • EVT_LIST_ITEM_FOCUSED(id, func) :
    当前聚焦的项目已更改。处理 wxEVT_LIST_ITEM_FOCUSED事件类型。
  • EVT_LIST_ITEM_MIDDLE_CLICK(id, func) :
    鼠标中键已在项目上单击。这仅受通用控件支持。处理 wxEVT_LIST_ITEM_MIDDLE_CLICK事件类型。
  • EVT_LIST_ITEM_RIGHT_CLICK(id, func) :
    鼠标右键被点击在一个项目上。处理 wxEVT_LIST_ITEM_RIGHT_CLICK事件类型。
  • EVT_LIST_KEY_DOWN(id, func) :
    一个键被按下。处理 wxEVT_LIST_KEY_DOWN事件类型。
  • EVT_LIST_INSERT_ITEM(id, func) :
    已插入项目。处理 wxEVT_LIST_INSERT_ITEM事件类型。
  • EVT_LIST_COL_CLICK(id, func) :
    已左键单击列 (m_col)。处理 wxEVT_LIST_COL_CLICK事件类型。
  • EVT_LIST_COL_RIGHT_CLICK(id, func) :
    已右键单击列 (m_col)。处理 wxEVT_LIST_COL_RIGHT_CLICK事件类型。
  • EVT_LIST_COL_BEGIN_DRAG(id, func) :
    用户开始调整列大小 - 可以被否决。处理 wxEVT_LIST_COL_BEGIN_DRAG事件类型。
  • EVT_LIST_COL_DRAGGING(id, func) :
    正在拖动列之间的分隔线。处理 wxEVT_LIST_COL_DRAGGING事件类型。
  • EVT_LIST_COL_END_DRAG(id, func) :
    用户调整了列的大小。处理 wxEVT_LIST_COL_END_DRAG事件类型。
  • EVT_LIST_CACHE_HINT(id, func) :
    为虚拟列表控件准备缓存。处理 wxEVT_LIST_CACHE_HINT事件类型。

你可能感兴趣的:(wxWidgets自学笔记)