2015-01-06 1 views
0

У меня есть диалог MFC с CListBox на нем. Я могу успешно добавить элементы к нему с помощью CListBox::AddString и установить указатели данных с помощью CListBox::SetItemDataPtr. Строки отображаются в списке, и я могу получить указатели данных, вызвав CListBox::GetItemDataPtr и передавая статический индекс. Я не могу получить выбранный индекс, используя ClistBox::GetSelItems. Я последовал примеру на MSDN: http://msdn.microsoft.com/en-us/library/ds24bscf.aspx и даже пытались использовать LPINT:Почему я не могу получить выбранные элементы в CListBox? MFC

LPINT selItem = new int; 
m_Lb_Avail_Cmnds.GetSelItems(1, selItem); //m_Lb_Avail_Cmnds is a CListBox 
int i = *selItem; 

Но всегда возвращался 0, несмотря на который выбран пункт.

+2

GetSelItems действителен только для нескольких списков (-ов) выбора. Является ли ваш список одним или несколькими? Используйте GetCurSel для одиночного списка (ов) выбора. –

ответ

3

В одиночной выбор ListBox (который я предполагаю, что вы используете, потому что вы звоните GetSelItems с nMaxItems набором для 1), GetSelItems не поддерживается. Используйте вместо этого GetCurSel:

int i = m_Lb_Avail_Cmnds.GetCurSel();