SendMessageは、ウィンドウメッセージを送信するWindowsAPI・・・。
指定したウィンドウハンドルのウィンドウに、指定のメッセージと2つのパラメータ(wParamとlParam)を送る・・・。
そして、送信したウィンドウメッセージに対する処理が完了するまで、制御を返さない(次の処理に行かずブロッキングする)ことが特徴・・・。
実際にSendMessageが送信先の処理が完了するまで待っているのかを確認する・・・。
Button1(ID_BUTTON1)が押された時、
ダイアログ自身のウィンドウハンドルhwndDlgに、WM_LBUTTONDOWNを送信し、WM_LBUTTONDOWNの時の処理が終わるまで待つ・・・。
その後、Rectangleで矩形(80, 60, 240, 180)を描画する・・・。
WM_LBUTTONDOWNでの処理は、
Rectangleで矩形(0, 0, 160, 120)の矩形を描画するということになっている・・・。
つまり、SendMessageがWM_LBUTTONDOWNの処理を待つなら、矩形(0, 0, 160, 120)が描画されてから、矩形(80, 60, 240, 180)が描画されるはずである・・・。
Item1-1で、
Button1を押してみる・・・。
矩形(0, 0, 160, 120)の上に、矩形(80, 60, 240, 180)が描画されているので、
矩形(0, 0, 160, 120)が描画された後に、矩形(80, 60, 240, 180)が描画されたことがわかる・・・。
つまり、SendMessageが送信先の処理を待ってから、その後の処理をしていることがわかる・・・。
Sample/SendMessage.cpp at master · bg1bgst333/Sample · GitHub
Sample/resource.h at master · bg1bgst333/Sample · GitHub
Sample/SendMessage.rc at master · bg1bgst333/Sample · GitHub