我们的应用程序支持在窗口上执行不同操作的单击和双击事件。但是,在双击过程中总是会出现单击事件,这会导致不良后果。
我们的应用程序在Qt中,但实际上这是一个有关基础Windows / Mac API的问题-这是一个基本细节吗,因为一旦您松开手指,操作系统就无法检测到一次单击,因为它可能无法知道您正在前进单击第二次还是可以避免?
如果无法避免,他们是如何处理该问题的公认最佳实践?
答案 0 :(得分:4)
当您收到WM_LBUTTONDOWN
(或等效的Qt)时,启动一个计时器。如果在计时器到期之前获得WM_LBUTTONDBLCLK
(或等效的Qt),请取消计时器并执行双击操作。否则,当计时器到期时,请执行单击事件。
在Windows上,您可以使用GetDoubleClickTime()
获得双击时间。
这是您所能做的最好的事情-您不能阻止在任何一个平台上首先生成单击消息。