【问题标题】:What's the most efficient way to track the mouse cursor position on Windows?在 Windows 上跟踪鼠标光标位置的最有效方法是什么?
【发布时间】:2010-03-03 09:59:46
【问题描述】:

在 Mac OS X 的 Cocoa 框架中,有 Tracking Rects,它可以有效地让您注册视图的一个区域并在鼠标进入或离开时获取回调消息。

Windows 中是否有类似的 API?我想避免使用计时器每隔 x 间隔调用 GetCursorPos()。

可能是它们被命名为完全不同的东西,而且很简单,但到目前为止我还没有找到任何东西。

【问题讨论】:

    标签: windows cursor-position


    【解决方案1】:

    TrackMouseEvent,这将在鼠标离开窗口时向您发送WM_MOUSELEAVE 消息,并且如果鼠标有一段时间没有移动,也会向您发送悬停通知。

    如果你想要一个比你的窗口更小的跟踪矩形,那么你必须自己做。

    【讨论】:

      【解决方案2】:

      在您的窗口中捕捉WM_MOUSEMOVE

      【讨论】:

      • 此消息似乎只有在我没有将鼠标悬停在按钮等子控件上时才会发布。
      • @Drarok:您可能会在消息循环中捕获消息而不发送消息。在这里您可以转换坐标或调用 GetCursorPos()。这样您就不需要对所有窗口进行子类化。
      【解决方案3】:

      您可以安装鼠标挂钩来捕获鼠标事件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-12-13
        • 1970-01-01
        • 2013-12-08
        • 2012-05-03
        • 1970-01-01
        • 2011-12-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多