zoukankan      html  css  js  c++  java
  • 将块中的文字设置成属性,即实现块中文字可拖动的功能

    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();

  • 相关阅读:
    JavaScript语言精粹_第二章
    java并发Executors学习笔记
    iOS开发响应者链触摸事件
    快速学会Spring动态代理原理
    iOS类别Category与扩展Extension
    几款iOS开发常用工具
    Java回调接口的理解
    零基础学iPhone开发
    Java中的多线程
    Java文件下载的几种方式
  • 原文地址:https://www.cnblogs.com/xzh1993/p/5032975.html
Copyright © 2011-2022 走看看