CWindow

ウィンドウクラスの登録、ウィンドウの作成、ウィンドウの表示については、CWindowクラスにまとめる。
(MFCでいうところのCWndに相当する。)
ウィンドウプロシージャは、Window.h/Window.cppに移動するものの、今回はメンバにしない。
Window.hは、

メンバ変数にウィンドウハンドルm_hWnd、ウィンドウクラスの登録RegisterClass(これはstatic)、ウィンドウの作成Create、ウィンドウの表示ShowWindowをメンバとし、WindowProcはメンバにはしないがApplication.h/Application.cppからこちらに移動。
Window.cppは、

コンストラクタ、デストラクタ、それぞれのメンバ関数で、役割をその処理に専念させている。
特にRegisterClassは、ウィンドウクラス名を指定するだけで、あとは自動で設定する。
これにともない、Application.hは、

CWindowオブジェクトのm_mainWndをメンバ変数に追加。
Application.cppは、

InitInstanceがこんなにすっきり。

表示は変わらずできる
表示は変わらずできる

表示は変わらずできる。

Test/winapi/CWindow/CWindow/src/CWindow at master · bg1bgst333/Test · GitHub