环境
VS版本:VS2010
方法一
适用情况:左击鼠标,鼠标停留在列表控件选择行上。
LVHITTESTINFO lvinfo;
CPoint point;
DWORD dwPos;
//找出鼠标位置
dwPos = GetMessagePos();
point.x = LOWORD(dwPos);
point.y = HIWORD(dwPos);
m_lstAisMsg.ScreenToClient(&point);
//定义结构体
lvinfo.pt = point;
lvinfo.flags = LVHT_ABOVE;
//获取行号信息
nItem = m_lstAisMsg.HitTest(&lvinfo);
方法二
适用情况:先选择行,然后右击鼠标弹出右击菜单。
nItem = m_lstAisMsg.GetSelectionMark();
方法三
适用情况:多选行。
CString strMmsi;
int nItem;
POSITION pos;
pos = m_lstVesselStatistics.GetFirstSelectedItemPosition();
if (pos == NULL)
{
AfxMessageBox(_T("未选择行!"));
}
else
{
while (pos)
{
nItem = m_lstVesselStatistics.GetNextSelectedItem(pos);
if (nItem >= 0 && nItem < m_lstVesselStatistics.GetItemCount())
{
strMmsi = m_lstVesselStatistics.GetItemText(nItem, 1);
}
}
}
本文详细介绍了在Visual Studio 2010中使用三种不同的方法来获取列表控件中被选中行的信息。方法一适用于左击鼠标停留选择的情况;方法二适用于先选择行后右击弹出菜单的场景;方法三则针对多选行的需求,确保了用户在不同交互情境下都能有效获取所需行数据。
427

被折叠的 条评论
为什么被折叠?



