为什么我在按下“AltGr"时收到两条消息?

2022-01-12 00:00:00 keyboard visual-c++ mfc

为什么我在按下 AltGr 时会收到两条消息?

Why do I get two messages on AltGr being pressed?

我有以下钩子:

LRESULT CALLBACK MyClass::KeyboardShotcutsHook(int code, WPARAM wParam, LPARAM lParam)

当我使用波兰语时,我按 AltGR+Key (right Alt) 会产生 2 条消息:

When in polish language I press AltGR+Key (right Alt) it produces 2 messages:

  1. Ctrl+
  2. Alt+Ctrl+

为什么?以及如何避免Ctrl+Key?

Why? and how to avoid Ctrl+Key?

推荐答案

因为 AltGr 和 Alt+Ctrl 是等价的(在 Windows 中).两个击键序列的含义相同,而 Alt+Ctrl 获胜(可能是因为美式键盘布局上没有 AltGr - 这是我的猜测).

Because AltGr and Alt+Ctrl are equivalent (in Windows). Two key stroke sequences mean the same thing, and Alt+Ctrl won (probably because there is no AltGr on the US keyboard layout - that's my guess).

如果要检查 AltGr,请检查是否在 Alt 出现在钩子中时按下了 Ctrl.

If you want to check for AltGr, check if Ctrl is pressed whenever Alt shows up in your hook.

相关文章