📄 doubleclickdimension.cpp
字号:
// doubleClickDimension.cpp: implementation of the CdoubleClickDimension class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "resource.h"
#include "AcDblClkEdit.h"
#include "doubleClickDimension.h"
#include "dbdim.h"
#include "asdkmyclass.h"
#include "DlgModiEnt.h"
#include "actrans.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CdoubleClickDimension::CdoubleClickDimension()
{
}
CdoubleClickDimension::~CdoubleClickDimension()
{
}
void CdoubleClickDimension::finishEdit(void)
{
}
// 双击开始编辑
void CdoubleClickDimension::startEdit(AcDbEntity *pEnt, AcGePoint3d clickpt)
{
// 由于要对实体进行编辑,先锁定文档
AcApDocument *pDoc=acDocManager->curDocument();
acDocManager->lockDocument(pDoc,AcAp::kWrite);
// 判断如果传进来的实体是我的自定义实体,便进行修改操作
if(pEnt->isKindOf(AsdkMyClass::desc()) == Adesk::kTrue) {
AsdkMyClass* pMyClass = AsdkMyClass::cast(pEnt);
// 将打开级别升级到可写方式,防止对象以只读模式打开
if(!upgradeOpen(pMyClass))
return;
// 创建这个对象,以便切换CAD资源
CAcModuleResourceOverride thisResource;
// 创建我的修改实体对话框
CDlgModiEnt Dlg(CWnd::FromHandle(adsw_acadMainWnd()));
// 设定初值
Dlg.setValue(pMyClass->GetFloorNum(), pMyClass->GetBaseHeight());
// 如果“OK”按钮被按下,对自定义实体进行修改
if (Dlg.DoModal() == IDOK) {
pMyClass->SetFloorNum(Dlg.m_num);
pMyClass->SetBaseHeight(Dlg.m_height);
pMyClass->ExtendedBaseIni();
}
pMyClass->close();
}
// 所有修改完成,解锁文档
acDocManager->unlockDocument(pDoc);
// 刷新显示
actrTransactionManager->flushGraphics();
}
BOOL CdoubleClickDimension::upgradeOpen(AcDbObject *pEnt)
{
if(pEnt->upgradeOpen()!=Acad::eOk)
{
acutPrintf("错误:不能打开%s实体!", pEnt->isA()->name());
return FALSE;
}
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -