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