当前位置:首页 > 帮助文档 > COM开发 > 控件事件
鼠标事件
鼠标事件

点击此处下载演示实例


_DMxDrawXEvents::MouseEvent


控件中的鼠标事件。


参数说明

LONG lType

事件类型,1鼠标移动,2是鼠标左键按下,3是鼠标右键按下,4是鼠标左键双击 5是鼠标左键释放 6是鼠标右键释放 7是鼠标中键按下 8是鼠标中键释放 9是鼠标中键双击 10是鼠标中键滚动

DOUBLE dX

事件发生时的鼠标X坐标,文档坐标

DOUBLE dY

事件发生时的鼠标Y坐标,文档坐标

LONG* lRet

lRet 返回非0,消息将不在往下传递


提示鼠标双击下被点击的实体C#代码:


if (e.lType == 4)
{
    // 鼠标左键双击.
    // 构建选择集,找到鼠标左建双击下的实体。
 
    MxDrawSelectionSet ss = new MxDrawSelectionSet();
    MxDrawResbuf filter = new MxDrawResbuf();
    filter.AddStringEx("LINE",5020);
    MxDrawPoint point = new MxDrawPoint();
    point.x = e.dX;
    point.y = e.dY;
    ss.SelectAtPoint(point, filter);
    if (ss.Count > 0)
    {
        MxDrawEntity ent = ss.Item(0);
        MessageBox.Show("点击了" + ent.ObjectName + "对象");
        /*
        if (ent is MxDrawLine)
        {
            MxDrawLine line = (MxDrawLine)ent;
        }
            */
    }
    e.lRet = 1;
    // 取消后面的命令。
    axMxDrawX1.SendStringToExecute("");
}


鼠标中键滚动C#代码:


if (e.lType == 10)
{
    // 鼠标中键滚动
    MxDrawResbuf spVarValue
                = (MxDrawResbuf)axMxDrawX1.Call("GetMouseWheelDelta", "");
    // lDelta是滚轮滚动的数目
    Int32 lDelta = spVarValue.AtLong(1);
    if (lDelta > 0)
    {
        MessageBox.Show("Zoom 放大");
    }
    else
    {
        MessageBox.Show("Zoom 缩小");
    }
 
}
梦想CAD是专业的CAD插件(控件),可轻松在网页、手机及BS/CS程序中浏览编辑DWG文件,不需安装AutoCAD即可运行。经十余年累积已非常稳定可靠,有关键的空间搜索算法,并使用汇编优化,可同时处理50万级实体,有非常高的图形显示和处理效率。
联系我们
技术TEL:400-888-5703
185-8173-1060
客服I QQ: 3570505660
技术I QQ: 827867134
技术II QQ:6884123
VIP服务购买
销售TEL:156-8136-8971
销售QQ:710714273
用户交流
控件QQ交流群1:73281982
控件QQ交流群2:112199959
MxCAD软件群 1:515771658
技术I:QQ
827867134
客服I:QQ
3570505660
销售QQ
710714273
联系电话400-888-5703