删除扩展属性
//在扩展数据里寻找是否包含指定的KEY bool FindXDataKey(resbuf* rb,const CString strKey) { if(rb==NULL) { return false; } resbuf* rbHeader=rb; for(;rbHeader!=NULL;rbHeader=rbHeader->rbnext) { if(rbHeader->restype==AcDb::kDxfRegAppName&& strKey.CompareNoCase(rbHeader->resval.rstring)==0) { return true; } } return false; } //删除扩展数据里指定的KEY包含的内容 void DeleteXData(AcDbObject* pObj,const CString strKey) { resbuf* rb=pObj->xData();//获取扩展属性 if(rb==NULL) { return; } bool bFind=FindXDataKey(rb,strKey); acutRelRb(rb); if(!bFind) { return; } resbuf* rb1=acutBuildList(AcDb::kDxfRegAppName,strKey,NULL);//设置成空的,CAD会自动删除的 pObj->setXData(rb1); acutRelRb(rb1); }查看完整版本: 删除扩展属性
Tags: