1

我不确定这是否是问这个问题的正确地方。这不是一个特定于应用程序的问题,也不是任何具体问题。但是,为了使其更具体地应用,我将以 Photoshop 为例。

减小画笔大小的捷径是[。当我按住它时,刷子的大小会随着一些惯性而迅速减小。我想知道这是如何实现的。它是多次发送按键事件还是将按键事件与按键持续时间一起发送,应用程序根据持续时间响应?

我想这也取决于操作系统?我想更具体地了解 OSX。

4

1 回答 1

0

我不知道 OS X 上的行为是什么,但这篇文章展示了一些如何自己找到它的方法(无需阅读开发人员手册):


在 Windows 和 .NET 以及作为开发平台的“Windows 窗体”上,行为将是

MSDN:System.Windows.Forms → KeyPressEventArgs 类

...当用户按下某个键时会发生KeyPress事件。与KeyPress事件密切相关的两个事件是KeyUpKeyDown。当用户按下一个键时,KeyDown事件先于每个KeyPress事件,而当用户释放一个键时,会发生一个KeyUp事件。当用户按住一个键时,每次重复字符时都会发生重复的KeyDownKeyPress事件。发布时会生成一个KeyUp事件...

也可以看看:


应用程序代码通常处理所有三个事件,而KeyPress实际上是根据向下/向上信号计算得出的。因为它模仿了从硬件接收到的信号(有关更多详细信息,请参见http://wiki.osdev.org/Keyboard),这与操作系统无关,我希望操作系统 API 在概念上非常相似

于 2015-01-27T15:50:25.513 回答