Получение выбранных элементов из списка с несколькими выборками ctrl

#c #mfc #controls

Вопрос:

У меня есть элемент управления представлением списка, который на данный момент позволяет выбрать только один элемент. Затем я прочитал это с помощью следующего кода:

void CApp::OnNMClickList1(NMHDR *pNMHDR, LRESULT *pResult) { int nSelected = (m_List.GetSelectionMark()); …

Однако теперь я хочу, чтобы этот список мог выполнять множественный выбор, GetSelectionMark() всегда возвращает один индекс. Кто-нибудь может помочь мне перекодировать это, чтобы вернуть список выбранных индексов?

Ответ №1:

Используйте GetFirstSelectedItemPosition() для поиска сначала выбранного элемента, затем GetNextSelectedItem() для остальных, и все готово. 🙂

Комментарии:

1. Только что видел их на MSDN, если кому-то интересно, я опубликую полный фрагмент кода.

2. есть ли какой-нибудь способ найти действительно первую выбранную позицию в том порядке, в котором она была выбрана?.. например, нажмите и перетащите из «пятого элемента в первый» в списке, как я могу получить 5 в качестве первого выбранного элемента. (так как он был выбран первым)