Я нашел некоторую проблему.
У меня есть класс, расширенный от CListCtrl. Когда я делаю двойной щелчок по строке, я выбираю ее. Все хорошо, но если я сортирую колонку, у меня проблема!
Например:
У меня есть ряд на второй позиции. Я выбрал его и отсортировал столбец, выделение осталось на второй позиции, но мой элемент переместился в 4-ю строку (и выделение переместилось в 4-ю строку)
У меня плохое предчувствие, что это может быть какая-то ошибка 🙁
Кто-нибудь видел такую проблему?
PS: я не уверен, что должен предоставить какой-то код, потому что думаю, что все в порядке, но если понадобится, я опубликую его
Большое спасибо и простите за мой английский)
Я только видел эту проблему с представлениями списка данных владельца (LVS_OWNERDATA), поэтому я предполагаю, что это именно тот случай. У AFIK есть два возможных решения. Первый — сохранить состояние выбора самостоятельно, а затем использовать LVM_SETCALLBACKMASK, чтобы сообщить элементу управления, что вы предоставите состояние выбора. Вам также придется реагировать на щелчки мышью и обновлять массив данных. Другое решение — сохранить список выбранных элементов перед сортировкой, отменить выбор всех элементов, выполнить сортировку и затем, наконец, восстановить выбор, используя сохраненный список.
Других решений пока нет …