b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

mfc鼠标双击消息 Windows根据两个条件来做这个区分:(1)

电脑杂谈  发布时间:2021-05-06 09:01:54  来源:网络整理

Windows根据两个条件进行区分:

([1)双击时间间隔

这很容易想到。更准确地说,两次单击将生成四次鼠标单击消息。如果第三条消息(第二次按下)和第二条消息(由第一次反弹触发的WM_LBUTTONUP)之间的间隔短于“指定值”,则将第三条消息处理为WM_LBUTTONDBLCLK消息;第四条消息仍然是WM_LBUTTONUP。

在Windows XP SP2上,此指定的时间间隔默认为0. 5秒,对于其他操作系统,该时间间隔可能相同。可以通过调用:: GetDoubleClickTime获得此值。

可以设置此值。设置此值的方法有两种::: SetDoubleClickTime调用,或以SPI_SETDOUBLECLICKTIME作为第一个参数的调用:: SystemParametersInfo。设置的结果还会影响系统中的其他应用程序。

([2)两次鼠标单击之间的间隔距离

在第一次单击时,Windows将检测到一个以命中点为中心的矩形区域。如果第二次单击不在此区域之内,则第三条消息将不会计为WM_LBUTTONDBLCLK消息。

在Windows XP SP2上,此矩形区域的默认大小默认为4pt×4pt。可以通过以SM_CXDOUBLECLK或SM_CYDOUBLECLK作为参数调用:: GetSystemMetrics来获取。

此值也可以设置。设置方法是使用SPI_SETDOUBLECLKWIDTH或SPI_SETDOUBLECLKHEIGHT作为第一个参数调用:: SystemParametersInfo。设置的结果还会影响系统中的其他应用程序。

因此,连续两次按下并弹跳鼠标左键:

如果不满足以上两个条件,则生成的消息为:

WM_LBUTTONDOWN

WM_LBUTTONUP

WM_LBUTTONDOWN

WM_LBUTTONUP

如果满足以上两个条件,则生成的消息为:

WM_LBUTTONDOWN

WM_LBUTTONUP

WM_LBUTTONDBLCLK

WM_LBUTTONUP

以上结论还暗示了两个要点:

(1)无论是连续两次单击还是两次单击,一、的第二和第四条消息都不会受到影响。在收到双击消息之前,应用程序始终会收到WM_LBUTTONDOWN和首先是WM_LBUTTONUP消息,然后是WM_LBUTTONUP消息,应用程序应适当地处理各种消息;

(2)第二条消息和第三条消息是密钥,必须连续发送到同一窗口过程中才能进行处理。开发中的常见错误是:处理第一条消息WM_LBUTTONDOWN或在WM_LBUTTONUP中,随后的鼠标消息将通过SetCapture捕获并转发到其他窗口,从而导致原始窗口无法识别双击,而这种双击可能是预期的。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/bofangqi/article-373412-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...