DWORD dwOldStyle;
dwOldStyle=GetWindowLong(hWnd,GWL_STYLE);
if((dwOldStyle&LVS_TYPEMASK)!=dwNewStyle)
{
dwOldStyle&=~LVS_TYPEMASK;
dwNewStyle|=dwOldStyle;
SetWindowLong(hWnd,GWL_STYLE,dwNewStyle);
DWORD styles =LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_CHECKBOXES;
ListView_SetExtendedListViewStyleEx(m_ListCtrl.m_hWnd, dwNewStyle, dwNewStyle );
  这个是风格设置 int nIndex = m_ListCtrl.GetSelectionMark();
if(nIndex!=LB_ERR)
{
m_ListCtrl.DeleteItem(nIndex);
}
else
GetDlgItem(IDC_BUTTON1)->EnableWindow(FALSE);
这个是删除设置    
  急求高手指出错误 帮忙改正

解决方案 »

  1.   

    POSITION pos = m_ListCtrl.GetFirstSelectedItemPosition();
    int nIndex ;
    while(pos)
    {
    nIndex = m_ListCtrl.GetNextSelectedItem(pos);
    m_ListCtrl.DeleteItem(nIndex); 
    }
      

  2.   

    下面的代码应该对你有用:
    为CListCtrl控件添加一个控制类型的变量:m_list
    为控件添加NM_CLICK响应函数:
    void CViewUserInform::OnClickListPhone(NMHDR* pNMHDR, LRESULT* pResult) 
    {
    // TODO: Add your control notification handler code here
        int t;
        for(int i=0;i<m_phonelist.GetItemCount();i++)
        {
            if(m_list.GetItemState(i,LVIS_SELECTED)==LVIS_SELECTED)
    {
    t=i;break;//获取选择当前字符串的行数t.
    }
        }
        m_list.DeleteItem(t); 
    }
      

  3.   

    设置风格m_ListCtrl.ModifyStyle(0,LVS_REPORT|LVS_SHOWSELALWAYS|LVS_SINGLESEL);
    m_ListCtrl.SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE,0,LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);你的删除没有问题
      

  4.   

    你可以将所有选中的索引值保存到vector中,
    如vector<int> vec保存了你CListCtrl中的索引值,可能要排序,从打到小,
    在去除vector中的索引值,从打到小依次删除对象的项。