zoukankan      html  css  js  c++  java
  • BaseTool中鼠标双击事件获取鼠标位置的方法

      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)

  • 相关阅读:
    centos7内存处理
    MySQl分析工具之mysqltuner.pl及mysqlslap
    Mycat-web 安装
    【NOI2001】【Luogu P2704】【POJ1185】炮兵阵地
    【OpenJudge 7834】分成互质组
    Assignment(单调队列)
    OO’s Sequence
    【注意】邻接表
    20190405模拟测试
    【USACO2010open】时间旅行
  • 原文地址:https://www.cnblogs.com/SpaceOfTime/p/4203844.html
Copyright © 2011-2022 走看看