WindowProc

WindowProcは、DispatchMessageによって送出されたウィンドウメッセージを受け取り、独自の処理を行うコールバック関数で、中の処理は自分で定義する・・・。

WindowProc 関数

WindowProcとはしているが、関数名も自分で自由に定義できる・・・。
まあ、ここではそのままWindowProcで定義する・・・。
このウィンドウプロシージャが呼ばれたとき、hwndにウィンドウハンドル、uMsgにメッセージ番号というかID(たとえばWM_LBUTTONDOWNなど)、wParamとlParamには付随するパラメータが入っている・・・。
それらを使って独自の処理をしていくように定義する・・・。

まずは、WindowProcのプロトタイプ宣言・・・。

ウィンドウクラスにこのWindowProcを登録する・・・。

でWindowProcの定義では、

ウィンドウの作成が開始されたとき(uMsgがWM_CREATEのとき)だけ、"WM_CREATE"とメッセージボックスを表示する・・・。
で、そのあとは、戻り値をDefWindowProcの戻り値にすることで既定の処理を任せる・・・。
こうしないと次々と来るウィンドウメッセージが連続して処理されないので・・・。

これで、すべてのウィンドウメッセージはWindowProcで処理されるが、

メッセージループを抜ける処理はDefWindowProcだけではできないので、この部分は残している・・・。

実行すると、

f:id:BG1:20150308234610p:plain

ウィンドウの作成が開始された合図として、メッセージボックス"WM_CREATE"が表示される・・・。
OKを押すと、

f:id:BG1:20150308234824p:plain

ウィンドウが表示される・・・。
こんな感じでウィンドウメッセージに対する処理はWindowProcに書いていく・・・。

Sample/WindowProc.cpp at master · bg1bgst333/Sample · GitHub