我的一个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);已经执行了),只是没有达到效果,表格的背景颜色没有改变。 不知道为什么? |