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)

时间: 2024-10-26 07:35:22

BaseTool中鼠标双击事件获取鼠标位置的方法的相关文章

Qt鼠标双击事件mouseDoubleClickEvent(QMouseEvent* event)

重写mouseDoubleClickEvent(QMouseEvent event)* 1.实例:双击窗口时输出"sss" /*widget.h*/ #ifndef WIDGET_H #define WIDGET_H #include<QWidget> #include<QDebug> class Widget : public QWidget { Q_OBJECT public: Widget(QWidget* parent=0); ~Widget(){} p

IE和Chrome执行javascript对鼠标双击事件的不同响应

最近在用天地图API帮同学做点开发的工作,主要是基于天地图的API实现违法用地举报的在线地图标绘,要实现的效果如下: 由于是基于天地图API的TPolygonTool工具实现面积量测和多边形绘制功能,实现思路如下: (1)基于按钮的鼠标点击事件开启多边形标绘工具: 1 //开启/关闭违法标绘工具 2 function onClickPolyTool() { 3 var btn = document.getElementById("polyToolBtn"); 4 if (btn.val

thikpad 中eclipse/idea 无法获取鼠标

从上次键盘被洒水后,不知道是主板哪里坏了 还是什么原因:eclipse和idea 显示鼠标在页面,但是鼠标无法点击进入:idea重启也不行:eclipse则需要alt+tab切换出去后再切换近来才可编辑,但是却不可以在两个页面之间,或者页面和导航菜单树之间切换,也必须切出在回来才可以. 后来发现是触摸板和小红帽的禁用的问题. 回想那次进水后因为键盘膜没有覆盖触摸板,而触摸板和小红帽在 拆开键盘发现连接线是一起在触摸板附近.应该是这两个部件的原因了. thikpad 中eclipse/idea 无

C#中WebBrowser.DocumentCompleted事件多次调用问题解决方法

关于DocumentCompleted事件,MSDN给出的解释是在文档加载完毕后执行,但是在我的程序中DocumentCompleted却被多次调用,查了一下资料,大概出现了以下几种情况. 1.WebBrowser载入一个页面后DocumentCompleted事件会执行两次,但这两次的ReadyState状态不一样,分别是Intercative和Complete.而MSDN对这两种状态值的解释是:Complete该控件已完成新文档及其所有内容的加载:Interactive该控件已经加载足够的文

JAVA中的反射只获取属性的get方法

JAVA中的反射只获取属性的get方法 在开发过程中,我们经常需要获取类中某些属性的get方法,此时我们需要使用到反射,例如,我们在获得一个对象后,需要知道该对象的哪些属性有值,哪些没有值,方便我们后面的处理. 譬如在我们拼SQL语句时,就需要知道哪些字段为空或为NULL,此时我们在拼语句的时候需要剔除掉,若是我们采用一般的判断的办法,则会很复杂(需要处理好SQL中的AND关键字的有无 ),当然,我们也有另外的解决办法(例如将非空的键和值存入map中,再将map存入list集合中,然后循环集合做

html5中canvas的使用 获取鼠标点击页面上某点的RGB

1.html5中的canvas在IE9中可以跑起来.在IE8则跑不起来,这时候就需要一些东西了. 我推荐这种方法,这样显得代码不乱. <!--[if lt IE9]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> 需要谷歌的一个html5.js的文件即可. 注意:必须插入在<head></he

鼠标参数,获取鼠标在网页中的坐标

1. 事件对象 event 标准浏览器 传递给响应函数 IE 把 event 事件对象作为全局对象 window 的一个属性 2. 浏览器滚动条高度 标准浏览器 使用 documen.documentElement.scrollLeft    documen.documentElement.scrollTop Safari 等浏览器 使用 window.pageXOffset    window.pageYOffset 没有 doctype 声明的页面 document.body.scrollL

Silverlight 鼠标双击 事件

Silverlight 双击事件例子 <UserControl x:Class="MouseDbClick.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsof

SQLServer中使用扩展事件获取Session级别的等待信息以及SQLServer 2016中Session级别等待信息的增强

本文出处:http://www.cnblogs.com/wy123/p/6835939.html 什么是等待 简单说明一下什么是等待:当应用程序对SQL Server发起一个Session请求的时候,这个Session请求在数据库中执行的过程中会申请其所需要的资源,比如可能会申请内存资源,表上的锁资源,物理IO资源,网络资源等等,如果当前Session运行过程中需要申请的某些资源无法立即得到满足,就会产生等待.SQL Server会以不用的方式来展现这个等待信息,比活动Session的等待信息,