前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2021-10-13arx

2021-10-13arx

作者头像
用户3519280
发布2023-07-08 10:28:53
1200
发布2023-07-08 10:28:53
举报
文章被收录于专栏:c++ 学习分享

【转载】双击实体弹出对话框(重载AcDbDoubleClickEdit)

代码语言:javascript
复制
// DoubleClickEdit.h: interface for the CDoubleClickEdit class.
//
//

//By freejsutin 2005-08-17 
#include "AcDblClkEdit.h" //for dinfine AcDbDoubleClickEdit
#pragma comment (lib ,"AcDblClkEditPE.lib")

#include "actrans.h" //for dinfine actrTransactionManager

class CDoubleClickEdit : public AcDbDoubleClickEdit 
{
public:
CDoubleClickEdit();
virtual ~CDoubleClickEdit();

void finishEdit(void);
void CDoubleClickEdit::startEdit(AcDbEntity *pEnt, AcGePoint3d clickpt);

private:
bool upgradeOpen(AcDbObject *pEnt);
};

// DoubleClickEdit.cpp: implementation of the CDoubleClickEdit class. // //

代码语言:javascript
复制
#include "stdafx.h"
#include "autodrawing.h"
#include "DoubleClickEdit.h"

#include "DeviceAttribute.h"

void CDoubleClickEdit::finishEdit()
{

}// 主要是这个函数在起作用,在这个函数里实现你想要的功能
代码语言:javascript
复制
void CDoubleClickEdit::startEdit(AcDbEntity *pEnt, AcGePoint3d clickpt)
{
// 由于要对实体进行编辑,先锁定文档
AcApDocument *pDoc = acDocManager->curDocument();
acDocManager->lockDocument(pDoc, AcAp::kWrite);

// 判断如果传进来的实体是我的自定义实体,便进行修改操作
if (pEnt->isKindOf(cascoCDeviceDrawing::desc())) 
{
   cascoCDeviceDrawing* pMyClass = cascoCDeviceDrawing::cast(pEnt);

   // 将打开级别升级到可写方式,防止对象以只读模式打开
   if( !upgradeOpen(pMyClass) ) 
   {
            acDocManager->unlockDocument(pDoc);
    return;
   }

   // 创建这个对象,以便切换CAD资源
   CAcModuleResourceOverride thisResource;

   CDeviceAttribute Diatest(CWnd::FromHandle(adsw_acadMainWnd()));
   Diatest.DoModal();

   pMyClass->close();

}

// 所有修改完成,解锁文档
acDocManager->unlockDocument(pDoc);
// 刷新显示
actrTransactionManager->flushGraphics();
}

bool CDoubleClickEdit::upgradeOpen(AcDbObject *pEnt)
{
if(pEnt->upgradeOpen()!=Acad::eOk)
{
   acutPrintf("错误:不能打开%s实体!", pEnt->isA()->name());
   return FALSE;
}
return TRUE;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-10-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 【转载】双击实体弹出对话框(重载AcDbDoubleClickEdit)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档