dfpgb 发表于 2010-7-29 17:01:00

打开新文档后不能操作 2楼有解决方法拉~

本帖最后由 作者 于 2010-7-30 14:34:32 编辑

//用以下代码打开指定的dwg
acDocManager->appContextOpenDocument("F:\\test.dwg");


之后我测试,已经是新打开的文档名字了
MessageBox(NULL, TEXT(acDocManager->curDocument()->fileName()), "", 0);

可是为什么下面的的操作不能正常进行了呢?


......
// 获得当前数据库的块表
AcDbBlockTable *pBlkTbl;
acdbHostApplicationServices()->workingDatabase()->getBlockTable(pBlkTbl, AcDb::kForRead);
// 获得模型空间的块表记录
AcDbBlockTableRecord *pBlkTblRcd;
pBlkTbl->getAt(ACDB_MODEL_SPACE, pBlkTblRcd,AcDb::kForRead);
pBlkTbl->close();
// 创建块表记录遍历器
AcDbBlockTableRecordIterator *pItr; // 块表记录遍历器
pBlkTblRcd->newIterator(pItr);
AcDbEntity *pEnt; // 遍历的临时实体指针

for (pItr->start(); !pItr->done(); pItr->step())

{

//问题在这里。。。。。。。。。循环进不来。。。。就是说没有一个实体被发现。。。

//但是新打开的文件里面已经是有画好了的图的。。。。

}

......

for (pItr->start(); !pItr->done(); pItr->step())
{
//问题在这里。。。。。。。。。循环进不来。。。。就是说没有一个实体被发现。。。//但是新打开的文件里面已经是有画好了的图的。。。。
}

dfpgb 发表于 2010-7-30 14:31:00

<p><font size="7"><font color="red"><strong>原来关键是要锁定文档啊<br/>加了下面这句就好拉~!</strong></font></font></p>
<p><font face="Verdana"><font face="Verdana">acDocManager-&gt;lockDocument(acDocManager-&gt;curDocument());</font></font></p>
<p><strong><font color="#ff0000" size="7"></font></strong>&nbsp;</p>

dfpgb 发表于 2010-7-30 14:32:00

<strong><font color="red">还有理论应将命令注册为ACRX_CMD_SESSION的<br/>可是我试验不这样也可以呢</font></strong>
页: [1]
查看完整版本: 打开新文档后不能操作 2楼有解决方法拉~