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

ON_COMMAND

MFC Sample

OnCommandで、メニュー項目が選択された時、ボタンが押された時などの処理を書くことができた・・・。
しかし、LOWORD(wParam)でリソースIDごとに割り振ったり、コードが長くなったりして、不便である・・・。

ON_COMMANDマクロを使うと、リソースIDごとにハンドラ関数を設定できる・・・。

ON_COMMAND

メニュー項目ごとにコマンドハンドラを作ろう・・・。

CFrameWnd_.hで、

Item1-1からItem1-3までのUI更新ハンドラ(OnUpdateItem1_x)とコマンドハンドラ(OnItem1_x)を用意・・・。(xに数字が入る。)

CFrameWnd_.cppで、例えばItem1-1のコマンドハンドラOnItem1_1は、

とメッセージボックスでItem1-1と表示するだけ・・・。

同様に、OnItem1_2は、

OnItem1_3は、

と書く・・・。

あとはON_COMMANDマクロで、

リソースIDとコマンドハンドラをセットする・・・。

f:id:BG1:20150610074703p:plain

Item1-3を選択すると、

f:id:BG1:20150610074739p:plain

メッセージボックスが表示される・・・。

Sample/CWinApp_.h at master · bg1bgst333/Sample · GitHub
Sample/CWinApp_.cpp at master · bg1bgst333/Sample · GitHub
Sample/CFrameWnd_.h at master · bg1bgst333/Sample · GitHub
Sample/CFrameWnd_.cpp at master · bg1bgst333/Sample · GitHub
Sample/resource.h at master · bg1bgst333/Sample · GitHub
Sample/ON_COMMAND.rc at master · bg1bgst333/Sample · GitHub