天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 166|回复: 2

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

[复制链接]
  • TA的每日心情
    开心
    昨天 06:36
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    105

    主题

    11

    回帖

    1308

    积分

    管理员

    积分
    1308
    QQ
    发表于 2024-2-28 08:57:30 | 显示全部楼层 |阅读模式
    1. // DoubleClickEdit.h: interface for the CDoubleClickEdit class.
    2. //
    3. //
    4. //By freejsutin 2005-08-17 
    5. #include "AcDblClkEdit.h" //for dinfine AcDbDoubleClickEdit
    6. #pragma comment (lib ,"AcDblClkEditPE.lib")
    7. #include "actrans.h" //for dinfine actrTransactionManager
    8. class CDoubleClickEdit : public AcDbDoubleClickEdit 
    9. {
    10. public:
    11. CDoubleClickEdit();
    12. virtual ~CDoubleClickEdit();
    13. void finishEdit(void);
    14. void CDoubleClickEdit::startEdit(AcDbEntity *pEnt, AcGePoint3d clickpt);
    15. private:
    16. bool upgradeOpen(AcDbObject *pEnt);
    17. };
    复制代码

     

     

     

     

    双击实体弹出对话框(重载AcDbDoubleClickEdit)
  • TA的每日心情
    开心
    昨天 06:36
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    105

    主题

    11

    回帖

    1308

    积分

    管理员

    积分
    1308
    QQ
     楼主| 发表于 2024-2-28 08:57:55 | 显示全部楼层
    DoubleClickEdit.cpp: implementation of the CDoubleClickEdit class.
    1. #include "stdafx.h"
    2. #include "autodrawing.h"
    3. #include "DoubleClickEdit.h"
    4. #include "DeviceAttribute.h"
    5. void CDoubleClickEdit::finishEdit()
    6. {
    7. }// 主要是这个函数在起作用,在这个函数里实现你想要的功能
    复制代码

     

     

     

     

    双击实体弹出对话框(重载AcDbDoubleClickEdit)
  • TA的每日心情
    开心
    昨天 06:36
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    105

    主题

    11

    回帖

    1308

    积分

    管理员

    积分
    1308
    QQ
     楼主| 发表于 2024-2-28 08:58:05 | 显示全部楼层
    1. void CDoubleClickEdit::startEdit(AcDbEntity *pEnt, AcGePoint3d clickpt)
    2. {
    3. // 由于要对实体进行编辑,先锁定文档
    4. AcApDocument *pDoc = acDocManager->curDocument();
    5. acDocManager->lockDocument(pDoc, AcAp::kWrite);
    6. // 判断如果传进来的实体是我的自定义实体,便进行修改操作
    7. if (pEnt->isKindOf(cascoCDeviceDrawing::desc())) 
    8. {
    9.    cascoCDeviceDrawing* pMyClass = cascoCDeviceDrawing::cast(pEnt);
    10.    // 将打开级别升级到可写方式,防止对象以只读模式打开
    11.    if( !upgradeOpen(pMyClass) ) 
    12.    {
    13.             acDocManager->unlockDocument(pDoc);
    14.     return;
    15.    }
    16.    // 创建这个对象,以便切换CAD资源
    17.    CAcModuleResourceOverride thisResource;
    18.    CDeviceAttribute Diatest(CWnd::FromHandle(adsw采用acadMainWnd()));
    19.    Diatest.DoModal();
    20.    pMyClass->close();
    21. }
    22. // 所有修改完成,解锁文档
    23. acDocManager->unlockDocument(pDoc);
    24. // 刷新显示
    25. actrTransactionManager->flushGraphics();
    26. }
    27. bool CDoubleClickEdit::upgradeOpen(AcDbObject *pEnt)
    28. {
    29. if(pEnt->upgradeOpen()!=Acad::eOk)
    30. {
    31.    acutPrintf("错误:不能打开%s实体!", pEnt->isA()->name());
    32.    return FALSE;
    33. }
    34. return TRUE;
    35. }
    复制代码

     

     

     

     

    双击实体弹出对话框(重载AcDbDoubleClickEdit)
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池|中国膜结构网_中国空间膜结构协会

    GMT+8, 2024-11-1 11:35 , Processed in 0.122390 second(s), 26 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表