返回介绍

鼠标事件

发布于 2023-08-09 23:10:33 字数 3095 浏览 0 评论 0 收藏 0

点击此处下载演示实例

视频如下:

_DMxDrawXEvents::MouseEvent

控件中的鼠标事件。

参数说明
LONG lType事件类型,1鼠标移动,2是鼠标左键按下,3是鼠标右键按下,4是鼠标左键双击 5是鼠标左键释放 6是鼠标右键释放 7是鼠标中键按下 8是鼠标中键释放 9是鼠标中键双击 10是鼠标中键滚动
DOUBLE dX事件发生时的鼠标X坐标,文档坐标
DOUBLE dY事件发生时的鼠标Y坐标,文档坐标
LONG* lRetlRet 返回非0,消息将不在往下传递

if(e.lType==4)提示鼠标双击下被点击的实体C#代码:

{
    // 鼠标左键双击.
    // 构建选择集,找到鼠标左建双击下的实体。
 
    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 缩小");
    }
 
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文