這應該很簡單,但我有一段時間做這件事。基本上我想在我的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