1

我在我的 Visual C++ 项目中使用 VK_OEM_MINUS (VIRTKEY) 作为菜单加速器,当我在 QWERTY 键盘上按“-/_”键时它可以完美运行。

但是当我使用法语键盘布局时它不起作用。法式布局中的“-”放在“6”键上,看起来它使用了其他键码。

我想知道如何将 MINUS 键用于 AZERTY 键盘?我正在寻找一种无需重新分配加速键即可重用代码的方法。我更喜欢在任何键盘上使用 MINUS 作为加速键。

更新:我尝试使用 ASCII 而不是 virtual key: "-", ID_MENUITEM, ASCII, NOINVERT,但什么也没发生,它仍然不起作用。(Win7, MSVC2010)

更新:更改了笔记本并使用了 Win7 和 MSVC2008 - ASCII 加速器现在可以工作,但看起来我无法通过加速器表处理 Ctrl+、Shift+(-) 组合。

更新:对于法语键盘布局,看起来 VK_OEM_MINUS (0xBD) 根本不存在,它不能由法语键盘生成。

4

1 回答 1

0

这只是我应用的一个快速解决方案,因为我既不想为 AZERTY 键盘使用其他加速器,也不想实现用户定义的加速器。

由于无法在 AZERTY 键盘上生成 VK_OEM_MINUS,因此我在按下 VK_KEY_6 时通过发布 (WM_KEYDOWN, VK_OEM_MINUS) 来伪造按键(仅适用于 AZERTY)。

于 2012-10-05T11:44:33.303 回答