- 积分
- 247
- 明经币
- 个
- 注册时间
- 2003-10-6
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
我知道在非模态对话框中操作图形数据库都要锁定文档,可是我的程序第一次能够执行,第二次执行时就失败。比如我要删除一个层,程序如下:
void Deletelayer(CString lyrName)
{
AcDbLayerTable *pLyrTable;
AcDbLayerTableRecord *pLyrTblRecord;
AcDbDatabase *pCurDb = NULL;
acDocManager->lockDocument( acDocManager->curDocument(), AcAp::kXWrite, NULL, NULL,true);
pCurDb = acdbHostApplicationServices()->workingDatabase();
//打开层表
pCurDb->getLayerTable(pLyrTable, AcDb::kForRead);
if(pLyrTable->has(lyrName))
{
pLyrTable->getAt(lyrName, pLyrTblRecord, AcDb::kForWrite, Adesk::kTrue);
pLyrTblRecord->erase(Adesk::kTrue);
}
pLyrTblRecord->close();
pLyrTable->close();
acDocManager->unlockDocument( acDocManager->curDocument());
}
总是只能执行一次,第二次就无法删除,不知是何原因,请高手指点,谢谢!! |
|