如何采集鼠标移动过程中的坐标位置?
在一个Winform窗体上,需要采集鼠标按下左键到释放左键之间划过的点的坐标。原来是在Mouse_move事件中写的,但发现采集出来的点不是线性的,跟鼠标滑动速度有关。滑动快,采集的鼠标点就比较少;滑动慢,采集的点就多。
因为在一个窗体上,鼠标滑动的线条肯定是按照屏幕像素一个一个滑动过去的,所以想采集到每隔一个像素的坐标。
求解决方案。
--------------------编程问答-------------------- 可以考虑用 ReactiveExtension,参考:
http://blog.csdn.net/fangxinggood/article/details/7685393 --------------------编程问答-------------------- Rx 可以设置一个阀值,在多少ms以内的点就舍弃。当然,在你现在代码的基础上,修改一下也能实现。
记录下两个点的 timespan 如果小于多少 ms 的就放弃即可。 --------------------编程问答-------------------- 一般在鼠标移动事件中就够用了,鼠标移动不是逐个像素的,因为有采集精度的限制,移动快了就会跳过多个像素。要尽量精确需要用鼠标钩子。 --------------------编程问答--------------------
问一下,如果使用钩子的话,有没有具体的代码实现呢?可以满足获取每个像素吗?谢谢了。 --------------------编程问答-------------------- 希望找到合适的具体实现的源代码,谢谢大家了! --------------------编程问答-------------------- 记录鼠标点下的坐标和当前的坐标,你鼠标经过的所有点都在这两个点所确定的矩形中。 --------------------编程问答--------------------
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.Form1_MouseMove);
}
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
this.Text = string.Format("X={0},Y={1}", e.X, e.Y);
}
}
}
这样就能拿到鼠标的XY坐标啦
补充:.NET技术 , C#