WindowProcは、DispatchMessageによって送出されたウィンドウメッセージを受け取り、独自の処理を行うコールバック関数で、中の処理は自分で定義する・・・。
WindowProcとはしているが、関数名も自分で自由に定義できる・・・。
まあ、ここではそのままWindowProcで定義する・・・。
このウィンドウプロシージャが呼ばれたとき、hwndにウィンドウハンドル、uMsgにメッセージ番号というかID(たとえばWM_LBUTTONDOWNなど)、wParamとlParamには付随するパラメータが入っている・・・。
それらを使って独自の処理をしていくように定義する・・・。
まずは、WindowProcのプロトタイプ宣言・・・。
ウィンドウクラスにこのWindowProcを登録する・・・。
でWindowProcの定義では、
ウィンドウの作成が開始されたとき(uMsgがWM_CREATEのとき)だけ、"WM_CREATE"とメッセージボックスを表示する・・・。
で、そのあとは、戻り値をDefWindowProcの戻り値にすることで既定の処理を任せる・・・。
こうしないと次々と来るウィンドウメッセージが連続して処理されないので・・・。
これで、すべてのウィンドウメッセージはWindowProcで処理されるが、
メッセージループを抜ける処理はDefWindowProcだけではできないので、この部分は残している・・・。
実行すると、
ウィンドウの作成が開始された合図として、メッセージボックス"WM_CREATE"が表示される・・・。
OKを押すと、
ウィンドウが表示される・・・。
こんな感じでウィンドウメッセージに対する処理はWindowProcに書いていく・・・。
Sample/WindowProc.cpp at master · bg1bgst333/Sample · GitHub