返回介绍

鼠标事件

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

函数名:_DMxDrawXEvents::MouseEvent

CAD控件中的鼠标事件。

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

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

function MouseEvent(dX,dY,lType)
{ 
    var mxOcx = document.getElementById("MxDrawXCtrl");
    if (lType == 4)
    {
    // 鼠标左键双击.
    // 构建选择集,找到鼠标左建双击下的实体。
    var ss =mxOcx.newSelectionSet();
    var filter =mxOcx.newResbuf();
    filter.AddStringEx("LINE",5020);
    var point =mxOcx.newPoint();
    point.x = dX;
    point.y = dY;
    ss.SelectAtPoint(point, filter);
    if (ss.Count > 0)
    {
        var ent = ss.Item(0);
        alert("点击了" + ent.ObjectName + "对象");
    }
    lRet = 1;
    // 取消后面的命令。
    mxOcx.SendStringToExecute("");
	}
}

响应鼠标点击图片对象js代码:

    var draw = document.getElementById("MxDrawXCtrl");
  draw.ImplementMouseEventFun = function MouseEvent(dX, dY, lType) { 
  if(lType == 2)
  {    
  // 鼠标左键按下
  // dTol是搜索范围,50是屏幕像素.
  var dTol = 50;        
  // 临时修改CursorWidth的大小,用FindEntAtPoint函数确定搜索范围.
  var bak = draw.CursorWidth;
  draw.CursorWidth = dTol;        
  // 搜索过滤条件,只选择图片.
  var filter = draw.NewResbuf();        
  // MxImageMark是图片对象的DXF组码名称,5020在DXF组码,代表MxImageMark是对象类型.
  filter.AddStringEx("MxImageMark",5020);        
  // 查找鼠标点击的实体。                        
  var ent = draw.FindEntAtPoint(dX,dY,filter);        
  // 恢复光标拾取框的大小.
  draw.CursorWidth = bak;                       
  if(ent != null)
  {
   alert("点击了一个图片");
  // 设置1,表示鼠标事件,不再往下传递.
  mxOcx.SetEventRet(1);
  }
 }
}

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

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

发布评论

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