码迷,mamicode.com
首页 > 其他好文 > 详细

BaseTool中鼠标双击事件获取鼠标位置的方法

时间:2015-01-05 16:25:31      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:

  ArcGISEngine的BaseTool类中提供了鼠标双击、鼠标移动、鼠标按键按下、鼠标按键弹起四种鼠标事件,但是鼠标双击事件的参数跟其他三种不一样,双击事件中没有提供鼠标位置信息。

  public virtual void OnDblClick();

  public virtual void OnMouseDown(int Button, int Shift, int X, int Y);

  public virtual void OnMouseMove(int Button, int Shift, int X, int Y);

  public virtual void OnMouseUp(int Button, int Shift, int X, int Y);

  今天在重载双击事件的时候,为了获取鼠标双击在制图页面的位置,找了好多的资料,最后想到了一种解决办法。

  1、先获取鼠标在屏幕中的位置,Control.MousePosition

  2、将绝对的屏幕坐标转换为相对于PageLayoutControl的屏幕坐标,AxPageLayoutControl.PointToClient(Control.MousePosition),注意,只有AxPageLayoutControl有这个函数,PageLayoutControl没有转换函数。这一步已经就可以用了,但是如果想获得鼠标在PageLayoutControl的页面坐标,还需要第三步。

  3、将屏幕坐标转换为制图页面坐标,PageLayoutControl.ToPagePoint(pt.X, pt.Y)

BaseTool中鼠标双击事件获取鼠标位置的方法

标签:

原文地址:http://www.cnblogs.com/SpaceOfTime/p/4203844.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!