Управление перемещением в списке
как переместить выбранную строку в clistcontrol вверх и вниз без удаления и убедиться, что она будет двигаться вниз вверх при выборе кнопки ..пожалуйста, дайте мне знать.
Что я уже пробовал:
LVITEM lvi;
Это невозможно сделать без удаления. Вы должны создать копию строки в новом loaction и удалить начальную строку.
Поиск в интернете "clistctrl move item up down" дает вам примеры:
Копирование / перемещение строк в CListCtrl[^]
c++ - перемещение элемента вверх или вниз в списке - переполнение стека[^]
[РЕДАКТИРОВАТЬ]
Чтобы переместить предметы на один шаг можно было бы их обменять:
// Single row must be selected if (1 != GetSelectedCount()) return; int sel = GetNextItem(-1, LVNI_SELECTED); // Move up or down int next = bUp ? sel - 1 : sel + 1; if (next < 0 || next >= GetItemCount()) return; CString strSel, strNext; for (int i = 0; i < GetHeaderCtrl()->GetItemCount(); i++) { strSel = GetItemText(sel, i); strNext = GetItemText(next, i); SetItemText(sel, i, strNext); SetItemText(next, i, strSel); } // Move selection SetItemState(sel, ~LVNI_SELECTED, LVIS_SELECTED); SetItemState(next, LVNI_SELECTED, LVIS_SELECTED); SetSelectionMark(next);[/РЕДАКТИРОВАТЬ]
его но НТ
я сделал это через вектор
Привет,
Для предыдущей версии MFC я использовал функции SetSel и SetTopndex.
Показать справку для этой функции.
Есть также много статей о CListCtrl.
С уважением
не могли бы вы мольбы помочь с логикой