要先判断一下 nItem>0 才能go on!

解决方案 »

  1.   

    检查返回值,返回值是-1就不要操作DeleteItem()
      

  2.   

      POSITION pos=m_list.GetFirstSelectedItemPosition();
      int i=m_list.GetNextSelectedItem(pos);
      BOOL ret=m_list.DeleteItem(i);
    对于多个选择,自己用循环就可以
      

  3.   

    你要判断nItem的值。然后再删除。
      

  4.   

    int i,iState;
    int nItemSelected=m_ListCtrl.GetSelectedCount();//所选表项数
    int nItemCount=m_ListCtrl.GetItemCount();//表项总数
    if(nItemSelected<1)
    {
    return;
    }
    for(i=nItemCount-1;i>=0;i--)
    {
    iState=m_ListCtrl.GetItemState(i,LVIS_SELECTED);
    if(iState!=0)
    {
    m_ListCtrl.DeleteItem(i);
    }
    }
      

  5.   

    void CWclistDlg::OnDel() 
    {
    int i,iState;
    int nItemSelected=m_ListCtrl.GetSelectedCount();//所选表项数
    int nItemCount=m_ListCtrl.GetItemCount();//表项总数
    if(nItemSelected<1)
    {
    return;
    }
    for(i=nItemCount-1;i>=0;i--)
    {
    iState=m_ListCtrl.GetItemState(i,LVIS_SELECTED);
    if(iState!=0)
    {
    m_ListCtrl.DeleteItem(i);
    }
    }
    }