为啥我无法在 CListBox 中获取所选项目? MFC

Posted

技术标签:

【中文标题】为啥我无法在 CListBox 中获取所选项目? MFC【英文标题】:Why can't I get the selected items in the CListBox? MFC为什么我无法在 CListBox 中获取所选项目? MFC 【发布时间】:2015-01-06 16:25:34 【问题描述】:

我有一个带有 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 仅对多选列表框有效。您的列表框是多选还是单选?对单个选择列表框使用 GetCurSel。 【参考方案1】:

在单选列表框中(我猜您正在使用它,因为您调用 GetSelItems 并将 nMaxItems 设置为 1),不支持 GetSelItems。请改用GetCurSel

int i = m_Lb_Avail_Cmnds.GetCurSel();

【讨论】:

以上是关于为啥我无法在 CListBox 中获取所选项目? MFC的主要内容,如果未能解决你的问题,请参考以下文章

MFC C++ CListBox 获取选中项

(MFC) CListBox -> 编辑列表中的项目?

如何从列表Xamarin Forms中获取所选项目?

如何在下拉列表中显示所选项目名称?

无法设置所选值

在 CListBox 的空白区域双击不会调用我的双击函数