読者です 読者をやめる 読者になる 読者になる

CMenu::OnCommandMenuItem

これまで、メニュー項目を選択した時のハンドラ処理は、CWindowのOnCommand、
そして、その下でメニュー項目ごとに定義したハンドラを呼ぶという構成にしていた・・・。

これだと、CWindowクラスが肥大化しそうなので、CMenuクラスにハンドラ処理を移設する・・・。

CWindow::OnCommandを、

こうした・・・。

HIWORD(wParam)で、メニューなのか、それともコントロールアクセラレータキーなのかがわかるので、

0、つまりメニューなら、CMenuの新しいメンバ関数OnCommandMenuItemを呼ぶ・・・。

CMenu::OnCommandMenuItemの中では、

これまでどおり、リソースIDごとのハンドラを呼ぶ・・・。
このために、

リソースIDごとのコマンドハンドラもCMenuに移した・・・。

f:id:BG1:20150623222356p:plain

で、

f:id:BG1:20150623222419p:plain

変わらず、ハンドラ処理は行われる・・・。

https://github.com/bg1bgst333/Test/blob/master/winapi/CMenu/OnCommandMenuItem/src/OnCommandMenuItem/OnCommandMenuItem/WinMain.cpp
https://github.com/bg1bgst333/Test/blob/master/winapi/CMenu/OnCommandMenuItem/src/OnCommandMenuItem/OnCommandMenuItem/Application.h
https://github.com/bg1bgst333/Test/blob/master/winapi/CMenu/OnCommandMenuItem/src/OnCommandMenuItem/OnCommandMenuItem/Application.cpp
https://github.com/bg1bgst333/Test/blob/master/winapi/CMenu/OnCommandMenuItem/src/OnCommandMenuItem/OnCommandMenuItem/Window.h
https://github.com/bg1bgst333/Test/blob/master/winapi/CMenu/OnCommandMenuItem/src/OnCommandMenuItem/OnCommandMenuItem/Window.cpp
https://github.com/bg1bgst333/Test/blob/master/winapi/CMenu/OnCommandMenuItem/src/OnCommandMenuItem/OnCommandMenuItem/Menu.h
https://github.com/bg1bgst333/Test/blob/master/winapi/CMenu/OnCommandMenuItem/src/OnCommandMenuItem/OnCommandMenuItem/Menu.cpp
https://github.com/bg1bgst333/Test/blob/master/winapi/CMenu/OnCommandMenuItem/src/OnCommandMenuItem/OnCommandMenuItem/resource.h
https://github.com/bg1bgst333/Test/blob/master/winapi/CMenu/OnCommandMenuItem/src/OnCommandMenuItem/OnCommandMenuItem/OnCommandMenuItem.rc