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使わないほうがいいかも。値の正当性チェックはしない。面倒。