読者です 読者をやめる 読者になる 読者になる

CWindow::OnCreate

WindowsAPI Test

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のところで呼ぶ・・・。

f:id:BG1:20150520222219p:plain

これで、OnCreate、OnDestroy単位でオーバーライドできるようになった・・・。

Test/WinMain.cpp at master · bg1bgst333/Test · GitHub
Test/Application.h at master · bg1bgst333/Test · GitHub
Test/Application.cpp at master · bg1bgst333/Test · GitHub
Test/Window.h at master · bg1bgst333/Test · GitHub
Test/Window.cpp at master · bg1bgst333/Test · GitHub