MFC中的列表控件,当选择了多项时,如何对选中的数据进行操作?
我想判断选中的三个数据的户室号是否相同,用for循环应该如何实现?还有GetFirstSelectedItemPostion()函数如何获取它的Index值?...
我想判断选中的三个数据的户室号是否相同,用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中。
假设列表控件对象为m_ListCtrl;
POSITION pos=m_ListCtrl.GetFirstSelectedItemPosition()
for(POSITION posTemp=pos;posTemp!=NULL;)
{
int ItemIndex=GetNextSelectedItem(posTemp);
}
如果你选择了4项,则这个循环会进行4次,每一次就可以得到一个选择项的对应的索引,保存到ItemIndex中。
展开全部
条款九:获取当前所有选中的行(多选)
这个,俺就比较懒了,抄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
}
}
这个,俺就比较懒了,抄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
}
}
追问
你敢不敢不复制粘贴
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询