Я хотел бы спросить вас, как динамически изменить положение элемента в wxListBox (например, перетащить & падение)
Я только нашел, как вставить элемент в wxListBox из примера wxWidget (загружается с wxWidgets) с именем dnd.
Всегда лучше начинать с точно установленного требования.
Шаг 1 кажется простым. Я полагаю, вам не нужна помощь с этим?
Шаг 2 самый сложный. Вам нужно будет обрабатывать события мыши, чтобы определить, когда пользователь перетаскивает мышь через элементы. Вот документы для класса событий мыши http://docs.wxwidgets.org/trunk/classwx_mouse_event.html Вам нужно будет понять большую часть этого, чтобы осуществить этот трюк!
Шаг 3 тоже сложно. Когда пользователь отпустит кнопку после перетаскивания, вам нужно будет определить положение мыши по событию и вычислить, какой элемент находился под мышью при отпускании кнопки. Вам нужен метод HitTest. Есть ли у wxListBox? Я подозреваю, нет! Возможно, вам стоит подумать об использовании wxListCtrl, а не пытаться создать свой собственный. http://docs.wxwidgets.org/trunk/classwx_list_ctrl.html#ac346d7aa18722fb54580d4c4ed5cf113
Шаг 4. Теперь, после всей обработки мышью, у вас должен быть перемещенный элемент и элемент, который нужно вставить до или после (ваш вызов) Очистите список и затем вставьте элементы в новом порядке.
Все это кажется большой проблемой. Эта особенность так важна? Не могли бы вы принять более простой пользовательский интерфейс, который бы выполнял работу, если для этого потребовалась бы небольшая часть кодирования, тестирования и отладки?
Что-то вроде этого:
Если вы просто хотите позволить пользователю изменить порядок элементов в списке, рассмотрите возможность использования wxEditableListBox. Если вам действительно нужно перетаскивание, это можно реализовать, как объяснено в ответе ravenspoint, но это сложнее.