TranslateAccelerator

TranslateAcceleratorは、発生したアクセラレータキーに対する処理を行うWindowsAPI・・・。

TranslateAccelerator 関数

これを使って、キーボード入力で発生するWM_KEYDOWNなどをWM_COMMANDなどに変換して、メニューの選択などが実行される・・・。

LoadAcceleratorsで、アクセラレータテーブルをロードし、hAccelにハンドルを格納・・・。

TranslateAcceleratorでWM_COMMANDへの変換をするわけだが、ここで重要なのは変換できた場合(戻り値がTRUE)は、そのあとの通常のメッセージ処理をしないということ・・・。
変換できない、つまりアクセラレータキーでない場合(戻り値がFALSE)は、通常のメッセージ処理をするということ・・・。

f:id:BG1:20150602054355p:plain

Ctrl + Bで、Item1-1を選択したときの処理が実行されるかを試す・・・。

Item1-1が選択された場合、DIALOGが表示されるはず・・・。

f:id:BG1:20150602054521p:plain

この状態から、Ctrl + Bを押す・・・。

f:id:BG1:20150602054757p:plain

確かに表示された・・・。
アクセラレータキーが処理された・・・。

Sample/TranslateAccelerator.cpp at master · bg1bgst333/Sample · GitHub
Sample/resource.h at master · bg1bgst333/Sample · GitHub
Sample/TranslateAccelerator.rc at master · bg1bgst333/Sample · GitHub