MFC List Control删除问题
如图当点击添加按钮添加一些信息后,现在想多行删除,代码如下:CListCtrl*pList=(CListCtrl*)GetDlgItem(IDC_LIST);if(!pL...
如图 当点击添加按钮添加一些信息后,现在想多行删除,代码如下:CListCtrl* pList = (CListCtrl*)GetDlgItem(IDC_LIST);if (!pList->GetSelectedCount()){AfxMessageBox(_T("请选择一行再删除"));return;}POSITION pos = pList->GetFirstSelectedItemPosition();while (pos){int nSel = pList->GetNextSelectedItem(pos);CString str = pList->GetItemText(nSel, 0);if (IDNO == AfxMessageBox(_T("确定要删除") + str + _T("的信息吗?"), MB_YESNO))continue;pList->DeleteItem(nSel);}这里工号定义的是int型当选中多项后,选择删除,出现问题:删除了没有选中的项。经过分析发现当删除第一项后,pos指向下一个位置,但此时第一个选中的已经被删除,导致pos指向位置发生错位,第二个删除的已不是本应该删除的,导致删除问题。这个应该怎么解决呢?谢谢大家解答。
展开
1个回答
2017-08-16
展开全部
你在OnInitDialog()函数中进行初始化,如果你里边是用变量表示的话,记得在你的函数调用中使用UpdateData();
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询