CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ObjectARX 开发指南

重写 dropCallback() 方法

2022-12-31 08:52| 发布者: admin| 查看: 248| 评论: 0|来自: AutoCAD

管理多个丢弃对象所需的大部分代码都是在方法的实现中提供的。此实现处理剪贴板数据中的对象,并为找到的每个实体调用 yourmethod。您的方法应检查实体的类型并决定是否接受删除。如果接受放置的实体,则只需将工具的内部属性变量设置为从放置的实体获取的值即可。AcadToolImplIAcadToolDropTarget::Drop()dropCallback()dropCallback()

通常,应用程序接受自己的自定义实体类型。您创建的工具通过假定放置对象的属性设置来专门化您的常用工具之一。当用户单击新工具时,您将创建与放置对象的特征匹配的自定义实体的新实例。不应打开或关闭传递给函数的对象。在调用函数之前打开对象以供读取,并在函数返回时关闭它们。dropCallback()AcadToolImpl

下面的清单显示了一个示例实现:AcadToolImpl::dropCallback()

STDMETHODIMP CBoltTool::dropCallback(AcDbEntity *pDropEntity)
{
// Cast the pointer first, and make sure it is successful.
asdkBolt *pBolt=(asdkBolt*)asdkBolt::cast(pDropEntity);
if(pBolt)
{
    m_Color.setColor(pBolt->color().color());
    m_Color.setNames(pBolt->color().colorName(), 
        pBolt->color().bookName());
    _tcscpy(m_szLayer,CA2T(pBolt->layer()));
    _tcscpy(m_MaterialName,CA2T(pBolt->materialName));
    _tcscpy(m_PartNumber,CA2T(pBolt->partNumber));
    m_HeadSides=pBolt->getHeadSides();
    m_HeadHeight=pBolt->getHeadHeight();
    m_ShaftLength=pBolt->getShaftLength();
    m_ShaftDiameter=pBolt->getShaftDiameter();
    m_ThreadLength=pBolt->getThreadLength();
    m_ThreadWidth=pBolt->getThreadWidth();
    m_HeadDiameter=pBolt->getHeadDiameter();
    return S_OK;
}
return E_FAIL;
// You don't need to worry about closing the object passed in.
}

路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )

GMT+8, 2024-5-19 12:46

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部