栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何捕获鼠标移动事件

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何捕获鼠标移动事件

您可以使用低级鼠标挂钩。请参阅此示例,并在HookCallback中检查WM_MOUSEMOVE消息。

您还可以使用IMessageFilter类来捕获Mouse Events并触发一个事件以获取位置(注意:这只会在窗口上获取位置,而不是在窗口外部):

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace GlobalMouseEvents{   public partial class Form1 : Form   {      public Form1()      {         GlobalMouseHandler gmh = new GlobalMouseHandler();         gmh.TheMouseMoved += new MouseMovedEvent(gmh_TheMouseMoved);         Application.AddMessageFilter(gmh);         InitializeComponent();      }      void gmh_TheMouseMoved()      {         Point cur_pos = System.Windows.Forms.Cursor.Position;         System.Console.WriteLine(cur_pos);      }   }   public delegate void MouseMovedEvent();   public class GlobalMouseHandler : IMessageFilter   {      private const int WM_MOUSEMOVE = 0x0200;      public event MouseMovedEvent TheMouseMoved;      #region IMessageFilter Members      public bool PreFilterMessage(ref Message m)      {         if (m.Msg == WM_MOUSEMOVE)         { if (TheMouseMoved != null) {    TheMouseMoved(); }         }         // Always allow message to continue to the next filter control         return false;      }      #endregion   }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/465240.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号