Я пытаюсь написать программу, которая выбирает и фокусирует определенный элемент в представлении списка.Как настроить фокус на элемент списка?
Почему вызов ListView_SetSelectionMark (или отправка LVM_SETSELECTIONMARK) не работает, чтобы сфокусироваться на элементе списка? После вызова ListView_SetSelectionMark центр остается там, где он был, а не менялся на новое место; когда я нажимаю клавишу со стрелкой, она перемещается из ранее сфокусированного объекта, а не из указанного мной элемента.
Вот мой фрагмент кода, который выбирает и фокусирует пункт:
ListView_SetItemState(this->m_hwndChild, index, LVNI_SELECTED, LVNI_SELECTED);
ListView_SetSelectionMark(this->m_hwndChild, index);
ListView_EnsureVisible(this->m_hwndChild, index, false);
SetFocus(this->m_hwndChild);
Here is a full gist. Каждый раз, когда вы нажимаете Ctrl-R, он выбирает случайный элемент списка.
Спасибо! Думаю, я не думал устанавливать стиль элемента списка списка LVIS_FOCUSED, так как я знал, что установка подобного стиля стиля просмотра дерева TVIS_SELECTED недостаточна. – yonran