delphi - Ctrl+-(Ctrl+连字符-减号)作为快捷键?

标签 delphi winapi keyboard-shortcuts zooming keycode

使用 Ctrl + +Ctrl + -Ctrl 似乎很自然 + 0 作为应用程序放大、缩小和恢复默认缩放(通常为 100 %)操作的快捷方式。现在,在 Delphi 中,我可以将 Ctrl + +Ctrl + 0 指定为快捷方式。然而,前者要求使用键盘主要部分的加号;后者要求使用键盘的主要部分的加号。无法使用数字键盘的加号。

但是,当我想将 Ctrl + - 指定为快捷方式时,问题就出现了。这根本行不通。如果我在 IDE 中分配“Ctrl+-”,则 ShortCut 属性中存储的值为 16495。如果我们从中减去 ssCtrl,我们会得到 111。人们认为,一种解决方法是分配 ShortCut := 45 + ssCtrl,或者等效地,ShortCut := Menus.ShortCut(45, [ssCtrl]),因为ord('-') = 45。但这是行不通的。

但是,我找到了一个可行的解决方案:ShortCut := 189 + ssCtrl。我选择 189,因为这是我按下“-”键并监听 KeyDown 事件时收到的数字。

那么,为什么我对此不满意呢?好吧,恐怕常数 189 仅在瑞典键盘上有效。我尝试阅读有关此内容的内容,并且像往常一样,the MSDN documentation很清楚,但是谁知道 Delphi 是如何处理事情的。

最佳答案

关键代码 189 是 Windows.pas 中的 VK_OEM_MINUS,因此您的解决方案不仅仅适用于瑞典人。

关于delphi - Ctrl+-(Ctrl+连字符-减号)作为快捷键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3592793/

相关文章:

delphi - Delphi 的最大错误或限制。常量整数值?

delphi - 为什么在某些情况下使用 idSMTP 发送的电子邮件无法正确转至新行?

c++ - 试图创建 HIMAGELIST,我在这里做错了什么?

c++ - 如何在未注册的过滤器上使用属性页?

emacs 将光标移动到列的快捷方式,如果需要可添加空格

c++ - qt 如何通过 connect(Signal,Slot) 将 qshortcut() 的 QkeySequence 传递给函数?

delphi - 需要一个带过滤功能的组合框

delphi - 如何使用 dcc32/dcc64 将代码编译为 ASM 文件?

c++ - 更改重复键阈值 C++

keyboard-shortcuts - 在 SOAPUI 中使用键盘切换请求和响应