您现在的位置是:首页 > 新游发布

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

星际游娱坊 2025-03-20【新游发布】159人已围观

简介在阅读了相关的MSDN文档之后,下面我们来看看文档中的设计以及它如何影响你自己的用户界面设计。首先,有些开发者将鼠标双击动作设计为执行不同于鼠标单机的独立任务。他们想知道是否可以在处理鼠标双击消息时,安全的忽略掉WM_LBUTTONDOWN这个消息。现在,假设你是一个程序员,你仍然希望继续采用让双击...

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

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

现在,假设你是一个程序员,你仍然希望继续采用让双击操作与单击操作无关的设计方案。你会怎么做呢?
能想到的一种方法是,在收到WM_LBUTTONDOWN消息时不做任何事情,除了设置一个计时器以在GetDoubleClickTime()毫秒内触发。如果在该时间内收到WM_LBUTTONDBLCLK消息,那么则认为发生了双击动作。如果没有,那么它一定是单击,因此可以执行单击操作(虽然稍微有些延迟)。

请注意,因为我们正在处理的是鼠标双击事件,所以这里我们需要将CS_DBLCLKS属性打开。
=CS_DBLCLKS;

运行此程序时,单击并双击客户区。请注意,该程序直到双击超时后才会对单击做出反应,因为它正在等待查看你是否要继续第二次单击(因此是双击而不是单击)。

总结


有时候,这真是太难了。

最后

RaymondChen的《TheOldNewThing》是我非常喜欢的博客之一,里面有很多关于Windows的小知识,对于广大Windows平台开发者来说,确实十分有帮助。
本文来自:《LogicalconsequencesofthewayWindowsconvertssingle-clicksintodouble-clicks》

最近我写了个东西

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

很赞哦!(170)