VC List Control控件删除选中的记录

OnButtonDelete() 
{
    POSITION pos = m_list.GetFirstSelectedItemPosition();
    int idx = m_list.GetNextSelectedItem(pos);
    while (idx != -1){
        LVITEM lvi;
        
        lvi.iItem = idx;
        
        lvi.iSubItem = 0;
        
        lvi.mask = LVIF_IMAGE;
        
        if (m_list.GetItem(&lvi)){
            m_imgList.Remove(lvi.iImage); //同时删除ImageList中的对应图片
        }
        
        m_list.DeleteItem(idx);
    
        idx = m_list.GetNextSelectedItem(pos);
    }
    //需要先排序,再重绘,否则从中间删除后该区域会空白,后面的记录不会自动上移
    m_list.Arrange(LVA_DEFAULT);
    m_list.RedrawItems(0, m_list.GetItemCount());
}

你可能感兴趣的:(list)