窗口是否接收三次单击事件?如何处理高阶点击?

use*_*067 3 c++ windows winapi

窗口是否会收到有关三次单击的消息,就像双击一样?我找不到与WM_LBUTTONTRIPLECLICKmessage 类似的WM_LBUTTONDBLCLK消息

我想实现类似于 Microsoft Word 的东西,其中三次单击选择整个段落。如何检测我的窗口上的三次单击?

Mik*_*wan 7

这在 MSDN 上有记录:http : //msdn.microsoft.com/en-us/magazine/cc163628.aspx

这个想法是等待双击,然后在之后的特定时间段内检查点击。

它不仅是 Internet Explorer,还有 Microsoft Word 和 Outlook®,但 Outlook 略有不同,因为三次单击选择的是行而不是段落。你是对的,没有 WM_LBUTTONTRIPLECLICK,但自己实现一个并不难。毕竟,什么是三次点击而不是快速连续的三次点击?或者快速连续双击和单击。您只需要知道点击必须多快到达才能算作三次点击?要找出答案,您可以调用适当命名的 ::GetDoubleClickTime,它以毫秒为单位返回双击时间。因此,如果您在这么多毫秒内双击然后单击一次,则算作三次单击。

  • 只是一个补充,@RaymondChen 也写过这个。查看他的帖子 [实施高阶点击](http://blogs.msdn.com/b/oldnewthing/archive/2004/10/18/243925.aspx) 以及他们在他的 *awesome* 博客上涉及的陷阱, [旧的新事物](http://blogs.msdn.com/b/oldnewthing/) (7认同)