【问题标题】:WinAPI: Handling the Left mouse double click for supressing the first click?WinAPI:处理鼠标左键双击以抑制第一次单击?
【发布时间】:2023-04-07 06:40:02
【问题描述】:

如何通过抑制第一次单击事件来处理 Windows 中的鼠标左键双击事件。例如:鼠标左键单击突出显示图像对象,双击放大图像,但现在我希望双击不突出显示图像对象?

这可能发生在鼠标左键双击时触发的事件序列是WM_LBUTTONDOWNWM_LBUTTONUPWM_LBUTTONDBLCLKWM_LBUTTONUP。即它触发了WM_LBUTTONDOWN,那么我该如何处理呢?

【问题讨论】:

  • 这是个坏主意。双击处理程序不应按设计禁止单击。您可以使用一些时间测量技巧来做到这一点,但程序行为会看起来很奇怪,因为在处理 Window 消息时不可能进行精确的时间测量。
  • GetDoubleClickTime 功能可以帮助你做你想做的事,但我强烈建议你改变这个设计。
  • 感谢您的 cmets。“因为在处理 Window 消息时不可能进行精确的时间测量”.......您的这部分评论能否请您详细说明。为了我的理解请。

标签: winapi


【解决方案1】:

你不能抑制这种行为。您可以做的是在第一次单击时启动一次性计时器,其中间隔设置为GetDoubleClickTime() 报告的毫秒数。如果发生双击,请停止计时器并执行双击逻辑。如果计时器到时,请停止计时器并改为执行单击逻辑。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-20
    • 2020-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多