MFC中的列表控件,当选择了多项时,如何对选中的数据进行操作?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC中的列表控件,当选择了多项时,如何对选中的数据进行操作?相关的知识,希望对你有一定的参考价值。

我想判断选中的三个数据的户室号是否相同,用for循环应该如何实现?还有GetFirstSelectedItemPostion()函数如何获取它的Index值?

用GetNextSelectedItem函数可以得到所选项的索引,如果用for循环,可以这样写:
假设列表控件对象为m_ListCtrl;
POSITION pos=m_ListCtrl.GetFirstSelectedItemPosition()
for(POSITION posTemp=pos;posTemp!=NULL;)

int ItemIndex=GetNextSelectedItem(posTemp);

如果你选择了4项,则这个循环会进行4次,每一次就可以得到一个选择项的对应的索引,保存到ItemIndex中。
参考技术A 条款九:获取当前所有选中的行(多选)
这个,俺就比较懒了,抄msdn的代码吧,反正很简单
// CListCtrl* pListCtrl = (CListCtrl*) GetDlgItem
(IDC_YOURLISTCONTROL);
ASSERT(pListCtrl != NULL);
POSITION pos =
pList->GetFirstSelectedItemPosition();
if (pos == NULL)
TRACE0("No items were selected!\n");
else

while (pos)

int nItem =
pList->GetNextSelectedItem(pos);
TRACE1("Item %d was
selected!\n", nItem);
// you could do your own
processing on nItem here

追问

你敢不敢不复制粘贴

以上是关于MFC中的列表控件,当选择了多项时,如何对选中的数据进行操作?的主要内容,如果未能解决你的问题,请参考以下文章

如何获得MFC列表框中选中的数据

MFC做表格的控件

如何在选择列表项时将文本框附加到来自共享点列表的复选框列表项

当我们从Android SDK中的值列表中选择一项时,如何显示值(依赖值)?

checkbox多选按钮如何取值?

ListCtrl控件 实现 :程序控制滚动(mfc的)