⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 doubleclickdimension.cpp

📁 AutoCAD环境中,自定义实体的很好的例子,有助于ARX开发人员快速掌握自定义实体的技术
💻 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 + -