明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1852|回复: 0

[讨论]关于自定义双击

[复制链接]
发表于 2007-11-24 14:02:00 | 显示全部楼层 |阅读模式
在一个程序中,我定义了一个双击类.重载了 startEdit() 和 finishEdit() 函数. 但好像在程序结束后,要再运行一下任意一个命令才能结束这个双击. 请问是怎么回事?
这是类定义
  1. #pragma once
  2. #include "acdblclkedit.h"
  3. #include "BclPro.h"
  4. class BclClk :
  5. public AcDbDoubleClickEdit
  6. {
  7. public:
  8. BclClk(void);
  9. virtual ~BclClk(void);
  10. public:
  11. virtual void startEdit(AcDbEntity *pEnt, AcGePoint3d pt);
  12. virtual void finishEdit();
  13. };
复制代码
类的实现:
  1. #include "StdAfx.h"
  2. #include "BclClk.h"
  3. #include "FrmMain.h"
  4. BclClk::BclClk(void)
  5. {
  6. }
  7. BclClk::~BclClk(void)
  8. {
  9. }
  10. void BclClk::startEdit(AcDbEntity *pEnt, AcGePoint3d pt)
  11. {
  12. acDocManager->lockDocument(curDoc());
  13. if (pEnt->isKindOf(BclSub::desc()) == Adesk::kTrue)
  14. {
  15.   BclSub *pEntity = BclSub::cast(pEnt);
  16.   if (pEntity->upgradeOpen() == Acad::eOk)
  17.   {
  18.    CAcModuleResourceOverride resoverrid;
  19.    FrmMain *pMainFrm = new FrmMain(CWnd::FromHandle(adsw_acadMainWnd()));
  20.    pMainFrm->setEntity(pEntity);
  21.    pMainFrm->startDialog(pMainFrm, true);   
  22.    if (pMainFrm)
  23.    {
  24.     delete pMainFrm;
  25.     pMainFrm = NULL;
  26.    }  
  27.    pEntity->recordGraphicsModified();
  28.    pEntity->close();
  29.    pEntity->recordGraphicsModified();
  30.   }
  31. }
  32. acDocManager->unlockDocument(curDoc());
  33. acedUpdateDisplay();
  34. finishEdit();
  35. }
  36. void BclClk::finishEdit()
  37. {
  38. acedSSSetFirst(NULL, NULL);
  39. }
现在这样做了之后,必须得任意运行一个命令才能结束双击,看到实体的修改变化.请问我应该如何做才能让它自动结束这个双击?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 18:35 , Processed in 0.156881 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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