1

Visual C ++プロジェクトのメニューアクセラレータとしてVK_OEM_MINUS(VIRTKEY)を使用していますが、QWERTYキーボードの「-/_」キーを押すと完全に機能します。

しかし、フランス語のキーボードレイアウトを使用すると、機能しません。「-」はフランス語レイアウトの「6」キーに配置されており、他のキーコードを使用しているように見えます。

AZERTYキーボードにマイナスキーを使用するにはどうすればよいですか?アクセラレータキーを再割り当てせずにコードを再利用する方法を探しています。キーボードのアクセラレータとしてMINUSを使用することを好みます。

更新:仮想キーではなくASCIIを使用しようとしまし"-", ID_MENUITEM, ASCII, NOINVERTたが、何も起こらず、それでも機能しません。(Win7、MSVC2010)

更新:ノートブックを変更し、Win7とMSVC2008を使用しました-ASCIIアクセラレータは現在機能していますが、アクセラレータテーブルを介してCtrl +、Shift +(-)の組み合わせを処理できないようです。

更新:フランス語のキーボードレイアウトではVK_OEM_MINUS(0xBD)がまったく存在しないようで、フランス語のキーボードでは生成できません。

4

1 に答える 1

0

これは、AZERTY キーボードに他のアクセラレータを使用したり、ユーザー定義のアクセラレータを実装したりしたくないため、私が適用した迅速なソリューションです。

VK_OEM_MINUS は AZERTY キーボードでは生成できないため、VK_KEY_6 が押されたときに (WM_KEYDOWN、VK_OEM_MINUS) をポストすることで、キーの押下を偽造しました (AZERTY のみ)。

于 2012-10-05T11:44:33.303 に答える