У меня есть диалог MFC с CListBox на нем. Я могу успешно добавлять элементы к нему, используя CListBox::AddString
и установить указатели данных, используя CListBox::SetItemDataPtr
, Строки отображаются в списке, и я могу получить указатели данных, вызвав CListBox::GetItemDataPtr
и передавая статический индекс. Я не могу получить выбранный индекс, используя ClistBox::GetSelItems
, Я следовал примеру на MSDN: http://msdn.microsoft.com/en-us/library/ds24bscf.aspx и даже попытался использовать LPINT:
LPINT selItem = new int;
m_Lb_Avail_Cmnds.GetSelItems(1, selItem); //m_Lb_Avail_Cmnds is a CListBox
int i = *selItem;
Но он всегда возвращает 0 независимо от того, какой элемент выбран.
В списке с одним выбором (который, я полагаю, вы используете, потому что вы звоните GetSelItems
с nMaxItems
установлен в 1
), GetSelItems
не поддерживается. использование GetCurSel
вместо:
int i = m_Lb_Avail_Cmnds.GetCurSel();