- UID
- 80205
- 积分
- 0
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2003-9-17
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
我的问题是这样的:
我创建了一个停靠工具栏,工具栏上有一个按钮,用来创建文字AcDbText
大致的代码如下:
ads_point ptresult;
//交互输入点
while(acedGetPoint(NULL,"\n输入位置\n",ptresult)== RTNORM)
{
AcGePoint3d position;
position.set(ptresult[0],ptresult[1],0);
AcDbText* pentText = NULL;
pentText = new AcDbText(position,LPCTSTR(mstr),NULL,10,NULL);
...
AcDbObjectId entId;
pBlockTableRecord->appendAcDbEntity(entId, pentText);
...
}
第一次按下按钮,提示输入点,左键输入点,可以正确的创建文字,
点右键正常退出,
但是如果不点右键(程序没有退出),而再次单击按钮,(重复三次),程序出现异常,AutoCAD退出,
请教如何解决这个问题
附完整的代码:
//创建text,AcDbText
void CChildDialog::OnButton2()
{
// TODO: Add your control notification handler code here
CString mstr("hello");
if(mstr.GetLength()==0)
return;
ads_point ptresult;
while(acedGetPoint(NULL,"\n输入位置\n",ptresult)== RTNORM)
{
AcGePoint3d position;
position.set(ptresult[0],ptresult[1],0);
AcDbText* pentText = NULL;
pentText = new AcDbText(position,LPCTSTR(mstr),NULL,10,NULL);
acDocManager->lockDocument(acDocManager->curDocument());
AcDbBlockTable *pBlockTable;
acdbHostApplicationServices()->workingDatabase()
->getSymbolTable(pBlockTable, AcDb::kForRead);
AcDbBlockTableRecord *pBlockTableRecord;
pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockTableRecord,
AcDb::kForWrite);
pBlockTable->close();
AcDbObjectId entId;
pBlockTableRecord->appendAcDbEntity(entId, pentText);
pBlockTableRecord->close();
pentText->close();
acDocManager->unlockDocument(acDocManager->curDocument());
}
} |
|