Cela devrait être assez facile, mais je vais avoir un mal fou à le faire. Fondamentalement, je veux déplacer une ligne dans mon wxListCtrl haut ou bas. J'ai posté ceci au forum de wxwidgets et ai obtenu le code suivant.Comment déplacer un élément vers le haut et vers le bas dans un 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();
qui ne fonctionne pas. L'élément est supprimé mais pas déplacé (je suppose que la ligne setitem ne fonctionne pas). Ensuite, j'ai pensé à simplement changer le texte et l'image mais je ne peux même pas obtenir le texte de la rangée de manière fiable. J'ai
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();
mais le texte est vide même s'il y a du texte et que l'index est correct. Donc, je suis coincé même pas capable de faire la tâche la plus basique. Quelqu'un sait-il comment faire cela? Le code s'exécute dans un rappel de bouton (l'utilisateur appuie sur une petite flèche vers le haut et mon code s'exécute pour essayer de le déplacer). J'utilise 2.9.1 sur Windows.
Est-ce que ça marche dans 2.8.x? – genpfault