CreateWindow時のメッセージ
過去にあったミスから、他所であまり紹介されてないものをメモ
CreateWindowExを呼ぶと、ウィンドウプロシジャにいくつかのメッセージが飛びます。
ブレークポイントを設定し追っていくと・・・
- msg=36(0x24) なので WM_GETMINMAXINFO
- msg=129(0x81) なので WM_NCCREATE
- msg=131(0x83) なので WM_NCCALCSIZE
- msg=28(0x1c) なので WM_ACTIVATEAPP
- msg=1(0x01) なので WM_CREATE
これはCreateWindowExが成功しているときのメッセージです。
ここでWM_CREATEまでクリアすると無事CreateWindowExよりウィンドウハンドルを取得することができます。
次に失敗しているときのメッセージの例です。
- msg=36(0x24) なので WM_GETMINMAXINFO
- msg=129(0x81) なので WM_NCCREATE
- msg=130(0x82) なので WM_NCDESTROY
このWM_NCDESTROYとはウィンドウを破棄してくれ、というメッセージらしいです。
昔、ウィンドウ周りのクラス化を行っている最中に、これで引っかかった事がありました。