设为首页收藏本站

晓东CAD家园-论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 38|回复: 1

[每日一码] Arx响应双击事件

[复制链接]

已领礼包: 7个

财富等级: 恭喜发财

发表于 2021-2-21 11:20:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
#include "stdafx.h"
#include "DoubleClickWinsill.h"
#include "tyWinsillCom.h"

CDoubleClickWinsill::CDoubleClickWinsill(void)
{
}


CDoubleClickWinsill::~CDoubleClickWinsill(void)
{
}

void CDoubleClickWinsill::startEdit(AcDbEntity *pEnt, AcGePoint3d pt)
{
        //acutPrintf(_T("123\n"));
        if(pEnt->isKindOf(tyWinsillCom::desc()))
        {
                tyWinsillCom* pWinsill = tyWinsillCom::cast(pEnt);
                //获取当前文档
                AcApDocument *pDoc = acDocManager->curDocument();
                //锁文档
                acDocManager->lockDocument(pDoc);
                //升级为可写
                pWinsill->upgradeOpen();

                pWinsill->setDir(pWinsill->getDir() * (-1));
                pWinsill->close();
                pWinsill->draw(); //在关闭之后还能使用

                //解锁文档
                acDocManager->unlockDocument(pDoc);
                //清理PickFirst选择集中的内容
                acedSSSetFirst(NULL, NULL);
        }
}

void CDoubleClickWinsill::finishEdit(void)
{

}
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 7个

财富等级: 恭喜发财

 楼主| 发表于 2021-2-21 11:21:42 | 显示全部楼层
然后在acrxEntryPoint.cpp中 添加
virtual AcRx::AppRetCode On_kInitAppMsg (void *pkt) {
                // TODO: Load dependencies here

                // You *must* call On_kInitAppMsg here
                AcRx::AppRetCode retCode =AcRxArxApp::On_kInitAppMsg (pkt) ;
               
                // TODO: Add your initialization code here
                //为tyWinsillCom类添加协议扩展
                CDoubleClickWinsill *pWinsillEdit = new CDoubleClickWinsill;
                tyWinsillCom::desc()->addX(AcDbDoubleClickEdit::desc(), pWinsillEdit);

                return (retCode) ;
        }

        virtual AcRx::AppRetCode On_kUnloadAppMsg (void *pkt) {
                // TODO: Add your code here

                // You *must* call On_kUnloadAppMsg here
                AcRx::AppRetCode retCode =AcRxArxApp::On_kUnloadAppMsg (pkt) ;

                // TODO: Unload dependencies here
                //删除tyWinsillCom类的协议扩展
                tyWinsillCom::desc()->delX(AcDbDoubleClickEdit::desc());

                return (retCode) ;
        }
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|小黑屋|手机版|Archiver|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )  

GMT+8, 2021-3-1 18:10 , Processed in 0.049653 second(s), 16 queries , Gzip On, WinCache On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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