0
votes

I have an MFC dialog with a CListBox on it. I'm able to successfully add items to it using CListBox::AddString and set data pointers using CListBox::SetItemDataPtr. The strings show in the listbox and I can retrieve the data pointers by calling CListBox::GetItemDataPtr and passing in a static index. I'm not able to the get the selected index using ClistBox::GetSelItems. I followed the example on msdn: http://msdn.microsoft.com/en-us/library/ds24bscf.aspx and even tried using LPINT:

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

But it's always returning 0 despite which item is selected.

1
GetSelItems is only valid for multiple-selection list box(s). Is your list box multi or single select? Use GetCurSel for single selection list box(s).Richard Critten

1 Answers

3
votes

In a single-selection listbox (that I am guessing you're using because you call GetSelItems with nMaxItems set to 1), GetSelItems is not supported. Use GetCurSel instead:

int i = m_Lb_Avail_Cmnds.GetCurSel();