void Additional_Class::SetLayerIsOff( CString strLayerName) { AcDbLayerTable *pLayTbl = NULL; acdbCurDwg()->getLayerTable(pLayTbl, AcDb::kForWrite); if(!pLayTbl->has(strLayerName)) { pLayTbl->close(); //该图层不存在 return; } AcDbLayerTableRecord *pLayTblRec = NULL; AcDbObjectId objId; pLayTbl->getAt(strLayerName, pLayTblRec, AcDb::kForWrite); pLayTbl->close(); //pLayTblRec->isInUse(); if (pLayTblRec==NULL) { return; } bool tempBool = pLayTblRec->isOff(); if (tempBool == false) { pLayTblRec->setIsOff(true); } else { pLayTblRec->setIsOff(false); } pLayTblRec->close(); return; }
CLayerState::CLayerState(const AcDbObjectId& idLayer) { m_idLayer = idLayer; AcDbLayerTableRecord* pLayer = NULL; if (acdbOpenObject(pLayer, m_idLayer, AcDb::kForRead) == Acad::eOk) { m_bOff = pLayer->isOff(); m_bFrozen = pLayer->isFrozen(); m_bLocked = pLayer->isLocked(); pLayer->close(); } else { m_bOff = false; m_bFrozen = false; m_bLocked = false; } }