benenriq 发表于 2006-6-29 09:58:00

Arx 选择的 一个很古怪的问题

<P>我用 acedssget()去选择一个区域内的实体</P>
<P>当我在前面不加入</P>
<P>AcDbIntArray m_OffFlag;<BR>&nbsp;AcDbIntArray m_FrozenFlag;<BR>&nbsp;AcDbIntArray m_LockedFlag;<BR>&nbsp;AcDbLayerTable *pLayerTable;<BR>&nbsp;AcDbLayerTableRecord* pRec;<BR>&nbsp;acdbCurDwg()-&gt;getLayerTable(pLayerTable, AcDb::kForWrite) ;<BR>&nbsp;AcDbLayerTableIterator* pIterator;<BR>&nbsp;pLayerTable-&gt;newIterator(pIterator);</P>
<P>&nbsp;for(pIterator-&gt;start();!pIterator-&gt;done();pIterator-&gt;step())<BR>&nbsp;{<BR>&nbsp;&nbsp;pIterator-&gt;getRecord(pRec, AcDb::kForWrite);<BR>&nbsp;&nbsp;m_OffFlag.append(pRec-&gt;isOff()) ;<BR>&nbsp;&nbsp;m_FrozenFlag.append(pRec-&gt;isFrozen()) ;<BR>&nbsp;&nbsp;m_LockedFlag.append(pRec-&gt;isLocked()) ;</P>
<P>&nbsp;&nbsp;if(pRec-&gt;isOff())<BR>&nbsp;&nbsp;&nbsp;pRec-&gt;setIsOff(Adesk::kFalse);&nbsp;&nbsp;<BR>&nbsp;&nbsp;//if(pRec-&gt;isFrozen())<BR>&nbsp;&nbsp;&nbsp;//pRec-&gt;setIsFrozen(Adesk::kFalse);<BR>&nbsp;&nbsp;if(pRec-&gt;isLocked())<BR>&nbsp;&nbsp;&nbsp;pRec-&gt;setIsLocked(Adesk::kFalse);<BR>&nbsp;&nbsp;pRec-&gt;close();<BR>&nbsp;}<BR>&nbsp;delete pIterator;<BR>&nbsp;pLayerTable-&gt;close();</P>
<P>的时候 选择的结果是正确的</P>
<P>可是当加入上面的//if(pRec-&gt;isFrozen())<BR>&nbsp;&nbsp;&nbsp;//pRec-&gt;setIsFrozen(Adesk::kFalse);后选择集却变成了该层的所有的实体,不知道为什么//if(pRec-&gt;isFrozen())<BR>&nbsp;&nbsp;&nbsp;//pRec-&gt;setIsFrozen(Adesk::kFalse);会影响选择的结果。 期待帮助。</P>
页: [1]
查看完整版本: Arx 选择的 一个很古怪的问题