74 lines
1.5 KiB
C++
74 lines
1.5 KiB
C++
#include "stdafx.h"
|
|
#include "AecBaseDoubleClickEdit.h"
|
|
#include "AecDbObjXDataMap.h"
|
|
|
|
#ifdef AECRXBASE_EXPORT
|
|
#define AECDLLIMPEXP __declspec(dllexport)
|
|
#else
|
|
#define AECDLLIMPEXP __declspec(dllimport)
|
|
#endif
|
|
|
|
AecBaseDoubleClickEdit::AecBaseDoubleClickEdit(void)
|
|
{
|
|
}
|
|
|
|
AecBaseDoubleClickEdit::~AecBaseDoubleClickEdit(void)
|
|
{
|
|
}
|
|
|
|
//不得导出,需要数据,增加特定的获取函数
|
|
AecDbObjXDataMap g_mapGlobalData;
|
|
void AecBaseDoubleClickEdit::startEdit(AcDbEntity *pEnt, AcGePoint3d pt)
|
|
{
|
|
if (pEnt != NULL)
|
|
{
|
|
//命令名 DBL_DXFNAME
|
|
TCHAR szCmd[65];
|
|
_tcscpy(szCmd,_T("DBL_"));
|
|
_tcscat(szCmd,pEnt->isA()->dxfName());
|
|
|
|
//判断命令是否存在
|
|
AcEdCommand* pCmd = acedRegCmds->lookupLocalCmd(szCmd);
|
|
if (pCmd != NULL)
|
|
{
|
|
//发送ID 到 USERI;
|
|
AcDbObjectId id = pEnt->objectId();
|
|
|
|
g_mapGlobalData.SetAt(szCmd,id);
|
|
|
|
pEnt->close();
|
|
acedPostCommand(_T("\x03"));
|
|
|
|
_tcscat(szCmd,_T(" "));
|
|
acedPostCommand(szCmd);
|
|
}
|
|
else
|
|
{
|
|
acutPrintf(_T("\nLocalCmd %s does not exist!"),szCmd);
|
|
}
|
|
}
|
|
}
|
|
|
|
void AecBaseDoubleClickEdit::finishEdit(void)
|
|
{
|
|
}
|
|
|
|
AECDLLIMPEXP bool GetDoubleClickEnt(LPCTSTR pszCmd,AcDbObjectId& id)
|
|
{
|
|
g_mapGlobalData.GetAt(pszCmd,id);
|
|
g_mapGlobalData.SetAt(pszCmd,AcDbObjectId::kNull);
|
|
return id.isValid();
|
|
}
|
|
|
|
//内部使用
|
|
AECDLLIMPEXP bool GetDoubleClickEntNoReset(LPCTSTR pszCmd,AcDbObjectId& id)
|
|
{
|
|
g_mapGlobalData.GetAt(pszCmd,id);
|
|
return id.isValid();
|
|
}
|
|
|
|
AECDLLIMPEXP bool SetDoubleClickEnt(LPCTSTR pszCmd, AcDbObjectId &id)
|
|
{
|
|
g_mapGlobalData.SetAt(pszCmd, id);
|
|
return true;
|
|
} |