b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

cimagelist_imagelist如何显示图片_imagelist 图片大小(4)

电脑杂谈  发布时间:2017-03-08 00:03:01  来源:网络整理

因为你删除第0行以后,下面的行会往上移,那么原来的第1行就变成了第0行,那么你再 m_listctrl.DeleteItem(1),那么删除的是原来的第2行,真麻烦,

所以,只有从下往上删,才是安全的,先删的,不会影响后面的操作,

m_listctrl.DeleteItem(1)

m_listctrl.DeleteItem(0)

但有时候,我们也不知道要删除哪些行,只知道要删除选中的那些行,像条款九中的那些

如果我们还是用

POSITION pos = m_listctrl.GetFirstSelectedItemPosition();

if (pos == NULL)

TRACE0("No items were selected!\n");

else

{

while (pos)

{

int nItem = m_listctrl.GetNextSelectedItem(pos);

m_listctrl.DeleteItem(nItem );

}

}

你就等着收尸吧

这时候我们就要B4微软了,为虾米木有GetLastselectedItemPosition 和GetPrevSelectedItem,多写一对成员函数会死啊:(

没办法,办法自己想,这里有个笨办法

POSITION sSelPos = NULL;

while(sSelPos = m_listctrl.GetFirstSelectedItemPosition())

{

int nSelItem = -1;

nSelItem = m_listctrl.GetNextSelectedItem(sSelPos);

if(nSelItem >= 0 && nSelItem<m_listctrl.GetItemCount())

{

//好了,这个nSelItem 就是我们要的DD

}

}

GetNextSelectedItem这个函数,看msdn的用法,其实是返回第一个的index,然后走到下一个选中的行去,所以这么做也是安全的,在实际中,俺也是这么做的,测试也通过,没问题的

当然,还有个办法,先通过GetFirstSelectedItemPosition和GetNextSelectedItem来获取所有的选中行的index,然后把这些index放到一个数组里,然后再从下往上删

唉真麻烦啊,还要不定数组,不说用new在堆上开吧,那么一个vector总是要的吧,麻烦啊,所以我暂时是用上述的办法来删除,也供大家参考,希望能找到更好的办法。

VC编程技术点滴(六)使用ListControl控件显示数据表


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-36345-4.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...