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

CWnd::OnCommand

CWnd::OnCommandは、メニューが選択された時、ボタンが押されたりなどの子コントロールが操作された時、アクセラレータキーが実行された時の処理を記述するためのメンバ関数・・・。
つまり、WM_COMMANDが発生したときのメッセージハンドラ・・・。

CWnd::OnCommand

これをオーバーライドして、メニューやボタンなどのハンドラ処理を書くことができる・・・。

CFrameWnd_.hで、

OnCommandをオーバーライド・・・。

CFrameWnd_.cppを見ると、

OnCommandは、メニュー項目などのリソースIDごとに分かれていないので、LOWORD(wParam)でリソースIDごとにswitch-case文で処理を割り振らないといけない・・・。

Item1-1が選択された時、メッセージボックスを出してTRUEを返す・・・。
来たコマンドが実行されたら、TRUEを返すのがルール・・・。

処理を定義していないところに来た場合は、処理していないのでFALSEを返す・・・。

f:id:BG1:20150609110943p:plain

Item1-1を選択すると、

f:id:BG1:20150609111014p: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/OnCommand.rc at master · bg1bgst333/Sample · GitHub