明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3347|回复: 2

[求助]一个AcDbTable的问题

[复制链接]
发表于 2008-10-27 17:39:00 | 显示全部楼层 |阅读模式
我的一个dwg文件里面有个表格(CAD2008)我想将表格的背景颜色去掉
可是没有成功,希望大家帮我找一下原因。代码如下:
  // Add your code for command aaArxjxf._tbn here
  AcDbBlockTable *pBlkTbl;
  acdbHostApplicationServices()->workingDatabase()
   ->getBlockTable(pBlkTbl, AcDb::kForWrite);
  // 获得模型空间的块表记录
  AcDbBlockTableRecord *pBlkTblRcd;
  pBlkTbl->getAt(ACDB_MODEL_SPACE, pBlkTblRcd,
   AcDb::kForWrite);
  AcDbBlockTableRecordIterator *pItr; // 块表记录遍历器
  
  pBlkTblRcd->newIterator(pItr);
  AcDbEntity *pEnt; // 遍历的临时实体指针
  AcCmColor co;
  co.setColorIndex(3);
  for (pItr->start(); !pItr->done(); pItr->step())
  {
   // 利用遍历器获得每一个实体
   pItr->getEntity(pEnt, AcDb::kForWrite);
   // 对pEnt所指向的实体进行各种编辑
   if(pEnt->isKindOf(AcDbTable::desc())==Adesk::kTrue)
   {
    acutPrintf(L"找到table");
    AcDbTable *pTable=AcDbTable::cast(pEnt);
    //改变背景为无色
    pTable->setBackgroundColorNone(true,AcDb::kAllRows);
    //设置一个单元格背景为3号颜色
    Acad::ErrorStatus es;
    es=pTable->setBackgroundColor(17,2,co);
    acutPrintf(L"     sdfsdf  % table",es);
    pTable->close();
   }
   
   // 注意需要关闭实体
   pEnt->close();
  }
  pBlkTbl->close();
  pBlkTblRcd->close();
  delete pItr; // 遍历器使用完毕之后一定要删除!
}
调试的时候没有发现运行错误(    es=pTable->setBackgroundColor(17,2,co);已经执行了),只是没有达到效果,表格的背景颜色没有改变。
不知道为什么?
发表于 2008-10-28 12:59:00 | 显示全部楼层

太历害了,我不会,怎样才能学好二次开发

发表于 2009-1-22 16:28:00 | 显示全部楼层
为了方便,我将es=pTable->setBackgroundColor(17,2,co);改为es=pTable->setBackgroundColor(2,2,co);
最后加下两行代码
actrTransactionManager->flushGraphics(); /*refresh screen*/
acedUpdateDisplay(); 
运行结果表格CELL(2,2)的背景颜色变为绿色,通过。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 14:37 , Processed in 0.179027 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表