当前位置:编程学习 > C#/ASP.NET >>

钩子的使用

我用钩子实现监听整个屏幕的鼠标移动,出现了两个问题

第一个就是鼠标的显示和隐藏:问题出现的很怪异,就是我用这个重写的控件时,使用两次是正常的,第三次使用时鼠标就隐藏不了了

第二个问题就是鼠标的移动在移动到边界时,便不能准确的判断他的移动方向,比如移动左边界,再往左移动时,他就被判断成向右移动

下面是我的一部分代码:


///重写控件中的鼠标点击事件
        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#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,