首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

鼠标双击响应的实现「建议收藏」

在Windows平台上,鼠标左键的按下、松开、快速的两次点击会产生WM_LBUTTONDOWN、WM_LBUTTONUP和WM_LBUTTONDBLCLK消息,但是Windows根据什么来区分连续的两次鼠标按键操作,是两次独立的单击,还是一次双击呢?最近在解决一个问题时,通过使用Spy++和查阅MSDN,弄清楚了这个问题。简单总结如下: 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。设置的结果对系统中其他的应用程序也起作用。

02

洪小文:以科学的方式赤裸裸地剖析AI(二)|从寒冬到复兴

近两年来,人工智能掀起的全民热潮可谓前所未有,几乎每行每业都在积极向机器学习、大数据、深度神经网络等这些“网红”技术靠拢。然而,在人工智能遍地生花的今天,更加令人惊诧的是它在引起追逐狂潮前所经历的寒冬。 9月27日,微软亚洲研究院院长洪小文倾情授课由清华大学发起的《脑科学与人工智能对话:基础与前沿》系列课程第一讲,从寒冬和复兴的双重视角继续为大家剖析人工智能的发展历史。本文是洪小文院长演讲整理稿的第二篇,文章转载自公众号“知识分子”。 谈AI的历史,需要谈谈很有名的AI寒冬。 第一次AI寒冬是在19

06
领券