为啥我无法在 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的主要内容,如果未能解决你的问题,请参考以下文章