_DMxDrawXEvents::MouseEvent
CAD控件中的鼠标事件。
参数 | 说明 |
---|---|
LONG lType |
事件类型,1鼠标移动,2是鼠标左键按下,3是鼠标右键按下,4是鼠标左键双击 5是鼠标左键释放 6是鼠标右键释放 7是鼠标中键按下 8是鼠标中键释放 9是鼠标中键双击 10是鼠标中键滚动 |
DOUBLE dX |
事件发生时的鼠标X坐标,文档坐标 |
DOUBLE dY |
事件发生时的鼠标Y坐标,文档坐标 |
LONG* lRet |
lRet 返回非0,消息将不在往下传递 |
提示鼠标双击下被点击的实体js代码:
function MouseEvent(dX,dY,lType) { if(lType == 4) { var mxOcx = document.getElementById("MxDrawXCtrl"); var ss = mxOcx.Call("Mx_NewSelectionSet",""); var pt = mxOcx.Call("Mx_NewPoint",""); var fil = mxOcx.Call("Mx_NewResbuf",""); pt.x = dX; pt.y = dY; ss.SelectAtPoint2(pt,fil); if(ss.Count > 0) { var ent = ss.Item(0); alert("点击了" + ent.ObjectName + "对象"); } // 取消后面的命令。 mxOcx.SendStringToExecute(""); return 1; } return 0; }
响应鼠标点击图片对象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); } // }; };