为什么我的listctrl 删掉一个item,所有的item都删掉了,这是我的代码
CImageList m_ImageListThumb;
Clistcontrol m_listcontrol;
m_ImageListThumb.Remove(m_SelectedItem); //删掉选中的图片
m_listcontrol.DeleteItem(m_SelectedItem);//删掉包含图片的listitem
m_listcontrol.Invalidate();
CImageList m_ImageListThumb;
Clistcontrol m_listcontrol;
m_ImageListThumb.Remove(m_SelectedItem); //删掉选中的图片
m_listcontrol.DeleteItem(m_SelectedItem);//删掉包含图片的listitem
m_listcontrol.Invalidate();
我怀疑增加选项的代码也有问题,大家看看
CImageList m_ImageListThumb;
Clistcontrol m_listcontrol;
int listindex=m_listcontrol.GetItemCount(); //以长度作为索引
int imgindex=m_ImageListThumb.GetImageCount();//以长度位索引
m_listcontrol.InsertItem(listindex, "",imgindex);//添加选项
m_ImageListThumb.Add(&bitmap,RGB(0,0,0)); //添加图片列表增加似乎没问题,但是如果进行删除操作再增加得时候,就出现增加两个选项,
再进行增加才正常
为什么呢
将
m_ImageListThumb.Remove(m_SelectedItem); //删掉选中的图片
m_listcontrol.DeleteItem(m_SelectedItem);//删掉包含图片的listitem
两行掉转顺序执行之后如何?
Clistcontrol m_listcontrol;
m_ImageListThumb.Remove(m_SelectedItem); //删掉选中的图片
m_listcontrol.DeleteItem(m_SelectedItem);//删掉包含图片的listitem
m_listcontrol.Invalidate();在m_listcontrol.DeleteItem(m_SelectedItem);//删掉包含图片的listitem
这句中断一个点,然后删除一个看看到这里时候的各项的值,同时看看堆栈就很容易找出原因了如果只是到这里一次就肯定你在别的地方还有删除操作