CCmdTarget::OnCmdMsgで、コマンドメッセージに対するハンドラの呼び出しが行われる模様。
CCmdTarget クラス | Microsoft Learn
以前も、CCmdTargetの項でやったが、今回はドキュメントビューアーキテクチャでどういう風に呼び出されるか見ていく。
まあ、前回のCWinApp::ProcessShellCommandの続き。
![ここから入っていく](https://cdn-ak.f.st-hatena.com/images/fotolife/B/BG1/20230722/20230722081405.png)
ここから入っていく。
![中はこうですね](https://cdn-ak.f.st-hatena.com/images/fotolife/B/BG1/20230722/20230722081459.png)
中はこうですね。
でいろいろあるんですが、起動時は条件に当てはまらないので、飛ばして、
![ここでnMsgに0](https://cdn-ak.f.st-hatena.com/images/fotolife/B/BG1/20230722/20230722081728.png)
ここでnMsgに0。
![nCodeも0](https://cdn-ak.f.st-hatena.com/images/fotolife/B/BG1/20230722/20230722081837.png)
nCodeも0。
![nMsgが0ならWM_COMMANDが入る](https://cdn-ak.f.st-hatena.com/images/fotolife/B/BG1/20230722/20230722082013.png)
nMsgが0ならWM_COMMANDが入る。
![そしてここからメッセージマップからハンドラを探す処理だと思うけど](https://cdn-ak.f.st-hatena.com/images/fotolife/B/BG1/20230722/20230722082253.png)
そしてここからメッセージマップからハンドラを探す処理だと思うけど、
![ここを通って](https://cdn-ak.f.st-hatena.com/images/fotolife/B/BG1/20230722/20230722082516.png)
ここを通って、
![ここに来る](https://cdn-ak.f.st-hatena.com/images/fotolife/B/BG1/20230722/20230722082621.png)
ここに来る。
![中は次回ということで](https://cdn-ak.f.st-hatena.com/images/fotolife/B/BG1/20230722/20230722082716.png)
中は次回ということで・・・。
![ここに来て終わる](https://cdn-ak.f.st-hatena.com/images/fotolife/B/BG1/20230722/20230722082800.png)
ここに来て終わる。
![でここに来るということは、OnCmdMsgはTRUEを返してるのかな。](https://cdn-ak.f.st-hatena.com/images/fotolife/B/BG1/20230722/20230722082858.png)
でここに来るということは、OnCmdMsgはTRUEを返してるのかな。
Sample/mfc/CCmdTarget/OnCmdMsg/src/CCmdTarget_ at master · bg1bgst333/Sample · GitHub