VK_OEM_MINUS在AZERTY键盘上不起作用

时间:2012-09-28 05:39:39

标签: windows visual-studio visual-c++ localization

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

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

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

更新:我尝试使用ASCII而不是虚拟密钥:"-", ID_MENUITEM, ASCII, NOINVERT,但没有任何反应,它仍然无效。 (Win7,MSVC2010)

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

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

1 个答案:

答案 0 :(得分:0)

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

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