2012-09-28 53 views
1

我在Visual C++項目中使用VK_OEM_MINUS(VIRTKEY)作爲菜單加速器,當我在QWERTY鍵盤上按下「 -/_」鍵時,它完美地工作。VK_OEM_MINUS無法在AZERTY鍵盤上工作

但是,當我使用法語鍵盤佈局它不起作用。 「 - 」以法語佈局放置在「6」鍵上,看起來像使用其他鍵碼。

我想知道如何使用MINUS鍵AZERTY鍵盤?我正在尋找一種重用我的代碼而不重新指派加速鍵的方法。我更喜歡在任何鍵盤上使用MINUS作爲加速器。

更新:我試圖使用ASCII而不是虛擬鍵:"-", ID_MENUITEM, ASCII, NOINVERT,但沒有發生,它仍然無法正常工作。 (Win7,MSVC2010)

更新:更改筆記本和使用Win7和MSVC2008 - ASCII加速器現在工作,但它看起來像我不能通過加速表處理Ctrl +,Shift +( - )組合。

更新:它看起來像VK_OEM_MINUS(0xBD)根本不存在爲法國鍵盤佈局,它不能由法國鍵盤生成。

+0

嘗試右括號) –

+0

不,它不起作用。 – Rom098

+0

當然'VK_OEM_MINUS'不存在。正如你自己所說,你正在尋找的符號是'VK_KEY_6'。 –

回答

0

這只是我應用的一個快速解決方案,因爲我不想爲AZERTY鍵盤使用其他加速器,也不想實現用戶定義的加速器。

由於無法在AZERTY鍵盤上生成VK_OEM_MINUS,因此當按下VK_KEY_6(僅適用於AZERTY)時,我通過發佈(WM_KEYDOWN,VK_OEM_MINUS)來僞造按鍵。

相關問題