明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2521|回复: 2

[求助]新建文档画图问题,各位指点一下程序错在哪?

  [复制链接]
发表于 2009-11-21 10:30:00 | 显示全部楼层 |阅读模式

AcDbDatabase* CCreateEnity::NewDocDatabase()


 AcDbDatabase* pNewDb=NULL;
 static ACHAR pData[] =L"acad.dwt";
 
 acDocManager->executeInApplicationContext(CreateDoc,(void *)pData); 

  为什么执行这句后下面语句不执行,只有回到cad切换回原来的文档才响应而且运行到实体关闭(绿色字体)报错,貌似数据库没有切换,该怎么改呢?有什么书或资料,高手们指点一下,谢谢!
 AcApDocument* npDoc=GetLastDoc();
 acDocManager->activateDocument(npDoc);
 pNewDb=npDoc->database();
 if(!pNewDb) return NULL;
    acDocManager->setCurDocument(npDoc);
   /* acdbHostApplicationServices()->setWorkingDatabase(pNewDb);*/
 /*pNewDb=acdbHostApplicationServices()->workingDatabase(); */

 AcDbBlockTable *pBtbl;
 pNewDb->getSymbolTable(pBtbl, AcDb::kForRead);

 AcDbBlockTableRecord *pBtblRcd;
 pBtbl->getAt(ACDB_MODEL_SPACE, pBtblRcd,
  AcDb::kForWrite);
 pBtbl->close();

 AcDbCircle *pCir1 = new AcDbCircle(AcGePoint3d(1,1,1),
  AcGeVector3d(0,0,1),
  1.0),
  *pCir2 = new AcDbCircle(AcGePoint3d(4,4,4),
  AcGeVector3d(0,0,1),
  2.0);
 pBtblRcd->appendAcDbEntity(pCir1);
 pCir1->close();

 pBtblRcd->appendAcDbEntity(pCir2);
 pCir2->close();
 pBtblRcd->close();

 delete pNewDb;
 return pNewDb;
}

void CreateDoc( void *pData)
{
 AcApDocument* pDoc = acDocManager->curDocument();
 if (acDocManager->isApplicationContext())
 {
  acDocManager->appContextNewDocument((const ACHAR *)pData);
 }
}

发表于 2009-11-24 14:02:00 | 显示全部楼层
本帖最后由 作者 于 2009-11-24 18:22:46 编辑

1、你需要在creatDoc那里切换回你原来的文档,MDI文档机制让新建的文档变成了当前活动文档,arx代码在原文档的执行被中断了,这个不难理解,你在一个文档中画线,当切换文档后再回来,会发现画线的命令依然在等待相应。

2、至于你说的关闭圆那里报错,是因为你新建的文档处于锁定状态,你需要在setDocument那里打开。

3、以上完成了,还是会出错,这回到之前有人说的那个内存0x000005的问题了,这个我又去研究一下,发现如果将增加实体的代码去掉,函数是正常运行的。迷糊中,解决尚不能。

=====

问题已经解决,源码稍后公布!

 楼主| 发表于 2009-11-27 17:52:00 | 显示全部楼层

谢谢!等待。。。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 12:45 , Processed in 0.158296 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表