删除扩展属性

//在扩展数据里寻找是否包含指定的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);

}

此条目发表在ObjectArx分类目录。将固定链接加入收藏夹。

发表评论