sunnickel 发表于 2003-11-11 15:13:00

请高手介绍一下非模态对话框中操作CAD图形数据库的情况,谢谢!!

我知道在非模态对话框中操作图形数据库都要锁定文档,可是我的程序第一次能够执行,第二次执行时就失败。比如我要删除一个层,程序如下:
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());
}
总是只能执行一次,第二次就无法删除,不知是何原因,请高手指点,谢谢!!
页: [1]
查看完整版本: 请高手介绍一下非模态对话框中操作CAD图形数据库的情况,谢谢!!