Это должно быть довольно легко, но у меня чертовски много времени на это.По сути, я хочу переместить строку в моем 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();
, но текст пустой, хотя текст есть, а индекс правильный.Так что я застрял даже не в состоянии выполнить самую основную задачу.Кто-нибудь знает, как это сделать?Код выполняется в режиме обратного вызова кнопки (пользователь нажимает маленькую стрелку вверх, и мой код выполняется, чтобы попытаться переместить его).Я использую 2.9.1 на Windows.