WM_CREATEは、ウィンドウが生成される前に発生するウィンドウメッセージ・・・。
CreateWindowやCreateWindowExを呼んだ後に発生し、ウィンドウプロシージャのlParamにはCREATESTRUCT構造体のポインタが渡される・・・。
この中には生成するウィンドウ情報が入っているので、これらを使ってウィンドウ生成時の処理を書くことができる・・・。
最後にDefWindowProcに行かずにreturn 0でもウィンドウは生成に成功するが、return -1とすると失敗する・・・。
今回は、生成されたウィンドウのハンドルhwnd, ウィンドウ名lpcs->lpszName, ウィンドウの位置lpcs->x, lpcs->yをメッセージボックスで表示する・・・。
tszMsgは最終的に表示する文字列で、tszTmpに各項目ごとに文字列をセットして、その都度tszMsgに連結・・・。
lpcsはCreateStruct構造体へのポインタ・・・。
lParamをCreatStruct構造体へのポインタ(LPCREATESTRUCT)にキャストしてlpcsに・・・。
まず、"WM_CREATE"を連結・・・。
hwndに生成するウィンドウのハンドルがあるので連結・・・。
CreateStruct構造体の要素lpszNameにはウィンドウ名・・・。
x, yにはウィンドウの位置座標・・・。(左上を(0, 0)とする。)
連結した文字列をMessageBoxで表示・・・。
ウィンドウ作成成功とする場合は、breakせず0を返してもいい・・・。
実行すると、
ウィンドウ生成前にこれが表示される・・・。
CreateWindowでCW_USEDEFAULTにしているので、x, yは毎回変わるが、固定値を指定するとそれになると思う・・・。
でそのあと、
とウィンドウが表示される・・・。