zdqwy19 发表于 2013-11-11 19:08:47

如何修改标注内文字颜色及填充颜色

   试着用objectarx编了一个检查标注值的代码,没成想在修改标注内文字颜色及填充颜色处卡住了!放上来,求教一下!
static void zdqMyGroup_jcbz () {
ads_name result ;
struct resbuf *rb;//结果缓冲区链表;
rb = acutBuildList(RTDXF0, ACRX_T("DIMENSION"),RTNONE);
acedPrompt(ACRX_T("\n选择需要检查是否修改过的标注:"));
int iRet =acedSSGet (NULL, NULL, NULL, rb, result) ;
if ( iRet == RTNORM )
{
   // 对选择集进行处理
   long len; long i=0;
   acedSSLength(result,&len);
   acutPrintf(ACRX_T("\n已选择%d个标注。"), len);
   for(i=0; i<len; i++)
   {
    // 获得指定元素的ObjectId;
    ads_name ent;
    acedSSName(result, i, ent);
    AcDbObjectId objId;
    acdbGetObjectId(objId, ent);
    // 获得指向当前元素的指针;
    AcDbEntity *pEnt;
    acdbOpenAcDbEntity(pEnt, objId, AcDb::kForWrite);
    if(pEnt->isKindOf(AcDbDimension::desc()))//如果是标注;
    {
   ACHAR * dimText;
   AcCmColor fillcolor, textcolor;
   fillcolor.setColorIndex(1);
   textcolor.setColorIndex(2);
   AcDbDimension *pDim = AcDbDimension::cast(pEnt);
   dimText=pDim->dimensionText();
   if((acutWcMatch(dimText, _T("*<>*,")))==-5001)//如果标注值被修改过
   {
      //打开已修改过创建的标注,对文字的颜色及填充进行修改
      (...);//文字颜色TextColor
      (...);//使用填充颜色
      (...);//填充颜色TextFillColor
   }
    }
    pEnt->close();//关闭当前元素
   }
}
}

风树 发表于 2013-11-11 19:12:13

关注ing从来没接触过标注类,顶起
页: [1]
查看完整版本: 如何修改标注内文字颜色及填充颜色