キーの押下を検出するプログラムに問題があります。すべての文字は QUERTY キーボードで機能しますが、AZERTY キーボードの特定の文字に問題があることを認識しています。
たとえば、AZERTY キーボードで \ を押すと、226 (â) のキーコードが割り当てられます。
キーボード レイアウト全体で動作が一貫していることを確認するにはどうすればよいですか? 組み込みのイベント処理が一貫していることを期待していました。
キーの押下を検出するプログラムに問題があります。すべての文字は QUERTY キーボードで機能しますが、AZERTY キーボードの特定の文字に問題があることを認識しています。
たとえば、AZERTY キーボードで \ を押すと、226 (â) のキーコードが割り当てられます。
キーボード レイアウト全体で動作が一貫していることを確認するにはどうすればよいですか? 組み込みのイベント処理が一貫していることを期待していました。
私はそれをまったく再現できません。AZERTY キーボードでは、バックスラッシュは、文字の上にある数字の列にあるキーをAltGr押したまま押すことによって作成されます。8これを行うと、次のKeyDown
イベントが発生します。
一方、すぐ左にあるキーを押すと、WKeyCode KeyDown
OemBackslash と KeyValue 226 が起動<
され、テキスト ボックスに文字が表示されます。
キーボード レイアウトが特定のキーボードに合わせて正しく設定されていないのではないかと思います。あなたのキーボードはこのウィキペディアのページの画像のように見えると思います: http://en.wikipedia.org/wiki/AZERTY
最初にキーボード レイアウトを検出してから、別のキーコードを文字マッピングに使用することをお勧めします。
はい、キーボード レイアウトが異なれば、キー コードも異なります。ドキュメントではVK_OEM_102
(キーコード 226) をと説明している"<>" or "\|" on RT 102-key keyboard
ため、キーコードは特定の 1 文字に対応することさえ想定されていません。
キーが対応する文字を確認するには、MapVirtualKey関数を使用します。次に、それがバックスラッシュかどうかを確認できます。