【问题标题】:How to track mouse dragging?如何跟踪鼠标拖动?
【发布时间】:2022-11-10 01:52:21
【问题描述】:

我需要在我的 wxWidgets 程序中编写什么事件,以便我可以跟踪鼠标拖动。 我的意思是按住鼠标左键并在按下时跟踪移动。

【问题讨论】:

    标签: c++ wxwidgets


    【解决方案1】:

    也许令人惊讶的是,这不是一个简单的任务。您可以查看wxMouseEventsManager 的实现以查看执行此操作的工作代码示例,但要点是您需要在按下按钮时捕获鼠标,以便即使它退出窗口也能跟随它的移动,并且那么您还需要对wxEVT_MOUSE_CAPTURE_LOST 事件做出反应,以了解捕获何时被强制中断。

    【讨论】:

      【解决方案2】:
      Bind(wxEVT_MOTION, [&](wxMouseEvent& event) {
          if (event.Dragging()) {
              if (event.LeftIsDown()) {
                  // code
              }
          }
      });
      

      【讨论】:

      • 请注意,event.Dragging 不区分左右按钮。
      • @macroland 是的,但是您可以通过鼠标事件函数查看按下了哪个按钮。 LeftIsDown 函数就是其中之一。
      • 是的,我认为现在的答案更重要!顺便说一句,您可以轻松地将 event.Dragging 与 event.LeftIsDown 组合到一行。
      猜你喜欢
      • 1970-01-01
      • 2021-12-10
      • 1970-01-01
      • 2022-10-26
      • 2022-06-22
      • 1970-01-01
      • 2019-12-15
      • 2013-08-21
      • 2011-07-24
      相关资源
      最近更新 更多