DynamicWindowProcの中のWM_CREATE時の処理を、OnCreateを作ってそちらに移す・・・。
そうすることで、OnCreateなどのハンドラごとにオーバーライドできる・・・。
Window.hに、
OnCreateを宣言・・・。
引数は、MFCのCWnd::Createと同じCreateStruct構造体ポインタlpCreateStruct・・・。
Window.cppに、
と定義・・・。
ウィンドウ作成成功にするために0を返す・・・。
あとはこれを、
DynamicWindowProcのWM_CREATEのところで呼ぶ・・・。
OnCreateが返した0をそのままDynamicWindowProcの戻り値として返す・・・。
最終的にStaticWindowProcの戻り値になるのでウィンドウ作成成功となる・・・。
OnCreateに続いて、OnDestroyも実装する・・・。
Window.hに、
と宣言・・・。
Window.cppでは、
と定義・・・。
PostQuitMessageで、ウィンドウの破棄とともにメッセージループ終了を要求・・・。
これを、
WM_DESTROYのところで呼ぶ・・・。
これで、OnCreate、OnDestroy単位でオーバーライドできるようになった・・・。
https://github.com/bg1bgst333/Test/blob/master/winapi/CWindow/OnCreate/src/OnCreate/OnCreate/WinMain.cpp
https://github.com/bg1bgst333/Test/blob/master/winapi/CWindow/OnCreate/src/OnCreate/OnCreate/Application.h
https://github.com/bg1bgst333/Test/blob/master/winapi/CWindow/OnCreate/src/OnCreate/OnCreate/Application.cpp
https://github.com/bg1bgst333/Test/blob/master/winapi/CWindow/OnCreate/src/OnCreate/OnCreate/Window.h
https://github.com/bg1bgst333/Test/blob/master/winapi/CWindow/OnCreate/src/OnCreate/OnCreate/Window.cpp