2009/06/09

同時コードの扱いについて

やりたいこと
例えば、ダイヤルキーの*に1を割り当てるために、以下の割り当てをする。
コード=3
同時コード=Shift
押し=キーダウン(1)
離し=キーアップ(1)

結果
このとき、実際にはShift+1が入力される。
これは、コードの3のみを置き換えるが同時コードのShiftは置き換えないため、Shiftが残ってしまうからである。

キーコードのログは次のようになる。
キーダウン(Shift)
キーダウン(3)→「押し」の割り当てにより変化→キーダウン(1)
キーアップ(3)→「押し」の割り当てにより変化→キーダウン(1)
キーアップ(Shift)

正しい方法
正しくは次のようにする。

押し=キーアップ(Shift)→キーダウン(1)
離し=キーアップ(Shift)→キーアップ(1)

なお、離しのキーアップ(Shift)は通常はなくても問題ない。

キーコードのログは次のようになる。
キーダウン(Shift)
キーダウン(3)→「押し」の割り当てにより変化→キーアップ(Shift)→キーダウン(1)
キーアップ(3)→「押し」の割り当てにより変化→キーアップ(Shift)→キーアップ(1)
キーアップ(Shift)

0 件のコメント: