关于MFC在ListControl中删除选中行
voidCAddress_ListView::OnSdelete(){POSITIONp=m_address_list.GetFirstSelectedItemPosit...
void CAddress_ListView::OnSdelete()
{
POSITION p=m_address_list.GetFirstSelectedItemPosition(); //在列表中删除选定行
while (p)
{
int nSelected=m_address_list.GetNextSelectedItem(p);
m_address_list.DeleteItem(nSelected);
m_address_list.GetFirstSelectedItemPosition();
}
POSITION pos = m_address_list.GetFirstSelectedItemPosition();
int m_nIndex = m_address_list.GetNextSelectedItem(pos);
UpdateData(FALSE); // 得到项目索引
}
在网上找到的代码,可以实现功能,但不知道每个函数的意思,能不能烦请高人给加一下注释,解释一下? 展开
{
POSITION p=m_address_list.GetFirstSelectedItemPosition(); //在列表中删除选定行
while (p)
{
int nSelected=m_address_list.GetNextSelectedItem(p);
m_address_list.DeleteItem(nSelected);
m_address_list.GetFirstSelectedItemPosition();
}
POSITION pos = m_address_list.GetFirstSelectedItemPosition();
int m_nIndex = m_address_list.GetNextSelectedItem(pos);
UpdateData(FALSE); // 得到项目索引
}
在网上找到的代码,可以实现功能,但不知道每个函数的意思,能不能烦请高人给加一下注释,解释一下? 展开
展开全部
哥跑了下你代码有问题啊,
void CAddress_ListView::OnSdelete()
{
POSITION p=m_address_list.GetFirstSelectedItemPosition(); //获取首选中行位置
while (p)
{
int nSelected=m_address_list.GetNextSelectedItem(p); //获取选中行的索引
m_address_list.DeleteItem(nSelected); //根据索引删除
p = m_address_list.GetFirstSelectedItemPosition(); //这里跟你不一样,如果不是这样写的话,会删错位的,比如你选了1,2两行,当删第一行后,如果跟你上面代码一样,第二次删会删到原先的第三行去, 这个语句重新计算选中行在删掉一条后的listctl中位置
}
POSITION pos = m_address_list.GetFirstSelectedItemPosition();//这行哥删了
int m_nIndex = m_address_list.GetNextSelectedItem(pos);//这行哥删了
UpdateData(FALSE); // 哥把这行删了也是可以的
}
void CAddress_ListView::OnSdelete()
{
POSITION p=m_address_list.GetFirstSelectedItemPosition(); //获取首选中行位置
while (p)
{
int nSelected=m_address_list.GetNextSelectedItem(p); //获取选中行的索引
m_address_list.DeleteItem(nSelected); //根据索引删除
p = m_address_list.GetFirstSelectedItemPosition(); //这里跟你不一样,如果不是这样写的话,会删错位的,比如你选了1,2两行,当删第一行后,如果跟你上面代码一样,第二次删会删到原先的第三行去, 这个语句重新计算选中行在删掉一条后的listctl中位置
}
POSITION pos = m_address_list.GetFirstSelectedItemPosition();//这行哥删了
int m_nIndex = m_address_list.GetNextSelectedItem(pos);//这行哥删了
UpdateData(FALSE); // 哥把这行删了也是可以的
}
展开全部
百度了一下 至少三个网页的方法是错的 我真是呵了一呵又一呵 我呵呵呵呵呵
看看这位高手的代码 才是对的 真不知道这些人怎么想的 错都能错成一样 太无语了
http://blog.csdn.net/testcs_dn/article/details/7612410
看看这位高手的代码 才是对的 真不知道这些人怎么想的 错都能错成一样 太无语了
http://blog.csdn.net/testcs_dn/article/details/7612410
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询