[求助]一个AcDbTable的问题
<div class="t_msgfont" id="postmessage_8718">我的一个dwg文件里面有个表格(CAD2008)我想将表格的背景颜色去掉<br/>可是没有成功,希望大家帮我找一下原因。代码如下:<br/> // Add your code for command aaArxjxf._tbn here<br/> AcDbBlockTable *pBlkTbl;<br/> acdbHostApplicationServices()->workingDatabase()<br/> ->getBlockTable(pBlkTbl, AcDb::kForWrite);<br/> // 获得模型空间的块表记录<br/> AcDbBlockTableRecord *pBlkTblRcd;<br/> pBlkTbl->getAt(ACDB_MODEL_SPACE, pBlkTblRcd,<br/> AcDb::kForWrite);<br/> AcDbBlockTableRecordIterator *pItr; // 块表记录遍历器<br/> <br/> pBlkTblRcd->newIterator(pItr);<br/> AcDbEntity *pEnt; // 遍历的临时实体指针<br/> AcCmColor co;<br/> co.setColorIndex(3);<br/> for (pItr->start(); !pItr->done(); pItr->step())<br/> {<br/> // 利用遍历器获得每一个实体<br/> pItr->getEntity(pEnt, AcDb::kForWrite);<br/> // 对pEnt所指向的实体进行各种编辑<br/> if(pEnt->isKindOf(AcDbTable::desc())==Adesk::kTrue)<br/> {<br/> acutPrintf(L"找到table");<br/> AcDbTable *pTable=AcDbTable::cast(pEnt);<br/> //改变背景为无色<br/> pTable->setBackgroundColorNone(true,AcDb::kAllRows);<br/> //设置一个单元格背景为3号颜色<br/> Acad::ErrorStatus es;<br/> es=pTable->setBackgroundColor(17,2,co);<br/> acutPrintf(L" sdfsdf % table",es);<br/> pTable->close();<br/> }<br/> <br/> // 注意需要关闭实体<br/> pEnt->close();<br/> }<br/> pBlkTbl->close();<br/> pBlkTblRcd->close();<br/> delete pItr; // 遍历器使用完毕之后一定要删除!<br/>}</div><div class="t_msgfont"></div><div class="t_msgfont">调试的时候没有发现运行错误( es=pTable->setBackgroundColor(17,2,co);已经执行了),只是没有达到效果,表格的背景颜色没有改变。</div><div class="t_msgfont">不知道为什么?</div> <p>太历害了,我不会,怎样才能学好二次开发</p> <div>为了方便,我将es=pTable->setBackgroundColor(17,2,co);改为es=pTable->setBackgroundColor(2,2,co);</div><div>最后加下两行代码</div><div><span class="Apple-style-span" style="font-family: simsun; ">actrTransactionManager->flushGraphics(); /*refresh screen*/</span></div><div>acedUpdateDisplay(); </div><div>运行结果表格CELL(2,2)的背景颜色变为绿色,通过。</div><div><br/></div>
页:
[1]