首页 > 其他 > 详细

将块中的文字设置成属性,即实现块中文字可拖动的功能

时间:2015-12-09 17:11:51      阅读:387      评论:0      收藏:0      [点我收藏+]

bool CInsertTyDlg::AlterDefinition(AcDbBlockReference *pRef, AcDbObjectId objId)
{
AcDbBlockTableRecord *pBlkTabRcd = NULL;
acdbOpenObject(pBlkTabRcd, objId, AcDb::kForWrite);
if (pBlkTabRcd->hasAttributeDefinitions())
{
AcDbBlockTableRecordIterator *pItr = NULL;
pBlkTabRcd->newIterator(pItr);
AcDbEntity *pEnt = NULL;
for (pItr->start(); !pItr->done(); pItr->step())
{
pItr->getEntity(pEnt, AcDb::kForWrite);
AcDbAttributeDefinition *pAttDef = NULL;
pAttDef = AcDbAttributeDefinition::cast(pEnt);
if (pAttDef != NULL)
{
AcDbAttribute *pAtt = new AcDbAttribute();
pAtt->setPropertiesFrom(pAttDef);
pAtt->setInvisible(pAttDef->isInvisible());
AcGePoint3d ptBase = pAttDef->position();
ptBase += pRef->position().asVector();
pAtt->setPosition(ptBase);
pAtt->setHeight(pAttDef->height());
pAtt->setRotation(pAttDef->rotation());
pAtt->setTag(pAttDef->tag());
CString str = pAttDef->textString();
pAtt->setTextString(str);
pRef->appendAttribute(pAtt);
pAtt->close();
}
pEnt->close();
pAttDef->close();
}
delete pItr;
}
pRef->close();
pBlkTabRcd->close();
return true;
}

 

AcDbAttributeDefinition *pAttDef = new AcDbAttributeDefinition();
pAttDef->setPosition(ptInsert);
pAttDef->setTag(strProperty);
pAttDef->setTextString(strValue);
pAttDef->setTextStyle(textId);
pAttDef->setHeight(pText->height());
pBlkTabRcd->appendAcDbEntity(pAttDef);
pAttDef->close();
pText->erase();

 

将块中的文字设置成属性,即实现块中文字可拖动的功能

原文:http://www.cnblogs.com/xzh1993/p/5032975.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!