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

CMenu::OnCommandMenuItem

WindowsAPI Test

これまで、メニュー項目を選択した時のハンドラ処理は、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

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

Test/WinMain.cpp at master · bg1bgst333/Test · GitHub
Test/Application.h at master · bg1bgst333/Test · GitHub
Test/Application.cpp at master · bg1bgst333/Test · GitHub
Test/Window.h at master · bg1bgst333/Test · GitHub
Test/Window.cpp at master · bg1bgst333/Test · GitHub
Test/Menu.h at master · bg1bgst333/Test · GitHub
Test/Menu.cpp at master · bg1bgst333/Test · GitHub
Test/resource.h at master · bg1bgst333/Test · GitHub
Test/OnCommandMenuItem.rc at master · bg1bgst333/Test · GitHub