钩子的使用
我用钩子实现监听整个屏幕的鼠标移动,出现了两个问题第一个就是鼠标的显示和隐藏:问题出现的很怪异,就是我用这个重写的控件时,使用两次是正常的,第三次使用时鼠标就隐藏不了了
第二个问题就是鼠标的移动在移动到边界时,便不能准确的判断他的移动方向,比如移动左边界,再往左移动时,他就被判断成向右移动
下面是我的一部分代码:
///重写控件中的鼠标点击事件
protected override void OnMouseClick(MouseEventArgs e)
{
base.OnMouseClick(e);
if (!autoChanged)//autoChanged为一个布尔变量,判断是不是要自动改变,初始值为false
{
autoChanged = true;
Cursor.Hide();
mouseHook.MouseMove += new MouseEventHandler(mouseHook_MouseMove);
mouseHook.MouseDown += new MouseEventHandler(mouseHook_MouseDown);
mouseHook.Start();
p = this.PointToScreen(new Point(0, 0));//p记录点击时的位置
}
}
}
void mouseHook_MouseDown(object sender, MouseEventArgs e)
{
Cursor.Position = new Point(p.X, p.Y);
Cursor.Show();
autoChanged = false;
mouseHook.Stop();
}
void mouseHook_MouseMove(object sender, MouseEventArgs e)
{
//监测鼠标移动,处理输入值的改变
} --------------------编程问答-------------------- gaos
补充:.NET技术 , C#