为什么我无法在CListBox 中获取选中的项目?多功能控制器

Why can't I get the selected items in the CListBox? MFC

我有一个带有 CListBox 的 MFC 对话框。我能够使用 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();