memo2

起動時にINIからキーとそれに対応するコマンドを読み込む。それをACCEL 構造体にセットし、CreateAcceleratorTableアクセラレータテーブルを作り、そのハンドルを得る。メッセージループにTranslateAcceleratorを加え、指定したキーが押されたときにWM_COMMANDを得る。そのコマンドを処理する。

これでいいのかな、フルキーカスタマイズ。

  • FVIRTKEY 0x01
  • FNOINVERT 0x02
  • FSHIFT 0x04
  • FCONTROL 0x08
  • FALT 0x10

  • HOTKEYF_SHIFT 0x01
  • HOTKEYF_CONTROL 0x02
  • HOTKEYF_ALT 0x04

FSHIFTを基点とすれば、HOTKEYF_*と同じ。

fVirtは実質5bit、keyも実質8bit、cmdに何ビット割り当てるかにもよるけど、1キーにint(32bit)1個で十分いけそうかな。

[keyboard]
Max=個数
Key1=32bit int
...
  • cmd:16bit(256以上コマンド作りそうにないので8bitでもよさそう)
  • fVirt:8bit
  • key:8bit

負数にならないよう、cmd は 16bit使わないほうがいいかも。値の正当性チェックはしない。面倒。