Windows将鼠标单击转换为双击的原理

智聪说说网
智聪说说网
智聪说说网
34614
文章
0
评论
2022-12-2704:26:05 评论 17

我建议你先看看这个问题。MSDN鼠标点击的技术文档,因为这些内容是我们研究的起点。我也假设你基本了解鼠标单击转换为双击的基本工作原理。

阅读相关内容MSDN在文档之后,让我们来看看文档中的设计以及它如何影响您自己的用户界面设计。

首先,一些开发者将鼠标双击动作设计为执行不同于鼠标单机的独立任务。当处理鼠标双击消息时,他们想知道是否可以安全地忽略它们WM_LBUTTONDOWN这个消息。

当鼠标按钮第一次按下时,窗口管理器不知道是否会有第二次点击。(有时用户可能不知道) 所以它会发出WM_LBUTTONDOWN等待更多的消息。

现在,假设你是程序员,你仍然希望继续单击操作无关的设计方案。你会怎么做?一种能想到的方法是收到它 WM_LBUTTONDOWN 除了设置计时器,消息时什么都不做, GetDoubleClickTime() 在毫秒内触发。若在此时间内收到 WM_LBUTTONDBLCLK 消息,然后认为双击发生了。 如果没有,那一定是单击,所以可以单击(虽然有点延迟)。

如果不设计双击事件处理,也需要基于等待的技术方案,但第二次单击和第一次单击会造成麻烦。为什么这是必要的? 因为很多用户只需要单击就可以双击。以下是一些避免第二次点击延迟操作的例子:

> 上下文菜单显示在任务栏中。如果上下文菜单在第一次单击时立即出现,第二次单击将关闭上下文菜单,使用户感到困惑。 我点击了一下,发生了什么然后它就消失了。” (用户不会说我双击;他们只是说他们点击了。双击是他们唯一知道怎么做的事情,所以他们只是称之为点击。例如,如果你只有一辆车,你不会说 我今天开的是我的蓝色车。)

> 若资源管理器处于一键模式,则会等待查看是否有第二次点击,若有,则会忽略。 否则,当人们双击时,他们会启动程序的两个副本。 此外,如果您禁止第二次点击但不等待,他们启动的程序将卡在资源管理器窗口后面,因为用户在启动程序后点击资源管理器。

> XP 风格的开始按钮忽略了第二次点击。 否则,当人们双击开始按钮时,第一次单击将打开开始菜单,第二次单击将关闭! 有时被称为去抖动。)

快手刷播放双击24小时在线,低价qq空间说说赞10个 - 免费领qq名片赞10000个

接下来,我们来看看一个关于延迟鼠标点击的实现代码。

请注意,因为我们正在处理鼠标双击事件,我们需要在这里CS_DBLCLKS属性打开。wc.style = CS_DBLCLKS;

操作此程序时,单击并双击客户区。 请注意,该程序直到双击超时才对单击做出反应,因为它正在等待检查您是否想继续第二次单击(因此是双击而不是单击)。

后来,我们将讨论鼠标点击超过两次的情况。

毕竟操作系统不是神仙,需要尽一切可能了解用户的点击行为。有时候,这真的太难了。

Raymond Chen的《The Old New Thing》这是我最喜欢的博客之一,里面有很多关于Windows小知识,对广大Windows对于平台开发者来说,确实很有帮助。本文来自:《Logical consequences of the way Windows converts single-clicks into double-clicks》

正如你所知,拓扑梅尔智能办公平台(Topomel Box)是绿色软件,主要面向经常使用电脑的朋友。它为提高办公效率提供了各种小功能,同时在操作上尽可能简单方便。它提供了各种提高办公效率的小功能,同时在操作上尽可能简单方便。我想:你值得拥有。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时候联系我们修改或删除,多谢。

标签:Windows将鼠标单击转换为双击的原理

智聪说说网
  • 本文由 发表于 2022-12-2704:26:05
  • 转载请务必保留本文链接:https://www.zhicongwang.com/88113.html