视频如下:
_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 缩小");
}
}