这应该很简单,但我有一段时间做这件事。基本上我想在我的wxListCtrl中上下移动一行。我发布了这个wxwidgets论坛,并得到了以下代码。如何在wxListCtrl中上下移动项目(wxwidgets)
m_list->Freeze();
wxListItem item;
item.SetId(item_id); // the one which is selected
m_list->GetItem(item); // Retrieve the item
m_list->DeleteItem(item_id); // Remove it
item.SetId(item_id - 1); // Move it up
m_list->SetItem(item); // Apply it's new pos in the list
m_list->Thaw();
哪个不起作用。该元素被删除但不能移动(我猜setitem行不工作)。然后,我想只是切换文本和图像,但我甚至无法可靠地从行中获取文本。我有
int index = m_right->GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
wxString label = m_right->GetItemText(index);
if(index == 0)
return;
wxListItem item;
item.SetId(index);
bool success = m_right->GetItem(item);
wxString text = item.GetText();
但即使有文本且索引正确,文本仍是空白。所以,我甚至不能完成最基本的任务。任何人都知道如何做到这一点?代码在按钮回调中运行(用户按下一个向上箭头,我的代码执行以尝试移动它)。我在Windows上使用2.9.1。
它是否在2.8.x? – genpfault 2010-11-10 20:23:03