void CMyDlg::OnDelLine() { // TODO: Add your control notification handler code here int nItem; long lId; CString str; AcDbObjectId LineId; AcDbEntity *pEnt = NULL; AcDbLine *pLine = NULL; Acad::ErrorStatus es; acDocManager->lockDocument(curDoc()); //在列表中删除选定行 while(m_ListCtr.GetNextItem(-1, (LVNI_ALL | LVNI_SELECTED)) != -1) { nItem = m_ListCtr.GetNextItem(-1, (LVNI_ALL | LVNI_SELECTED)); str = m_ListCtr.GetItemText(nItem, 0); //acutPrintf("%s\n", str); lId = atol(str); LineId.setFromOldId(lId); //获得指针 es = acdbOpenAcDbEntity(pEnt, LineId, AcDb::kForWrite); //在模型空间删除相应实体 pLine = AcDbLine::cast(pEnt); if (pLine) { pLine->erase(); pLine->close(); m_ListCtr.DeleteItem(nItem); --m_Row; } } UpdateData(FALSE); acDocManager->unlockDocument(curDoc()); }