CApplication::InitInstance

ひさびさに、CApplicationとCWindowの実装について再開。
前回はちょうど1年前の1月23日なのか。
今回は、CApplicationを継承したCMainApplicationのInitInstanceで、CWindowを作ることにする。
まず、Application.hは、

CWindowのインスタンスをm_pMainWndというポインタにしている。
コンストラクタCApplication()を追加。
InitInstanceを"=0"とすることで、純粋仮想関数にしている。
Application.cppは、

純粋仮想関数なので、InitInstanceは削除。
代わりにコンストラクタが新たに追加、m_pMainWndをNULLで初期化。
MainApplication.hを追加し、

CApplicationを継承。InitInstanceだけ定義。
MainApplication.cppは、

newで生成したCWndowのポインタを、m_pMainWndに格納した上で、ウィンドウ生成と表示処理。
WinMain.cppで、

CApplicationをCMainApplicationに置き換えて、成功でも失敗でも、app.m_pMainWndをdeleteで解放。

変わらず表示できた。(ウィンドウタイトルはCApplicationに変えてるけど。)
変わらず表示できた。(ウィンドウタイトルはCApplicationに変えてるけど。)

変わらず表示できた。(ウィンドウタイトルはCApplicationに変えてるけど。)

Test/winapi/CApplication/InitInstance/src/CApplication at master · bg1bgst333/Test · GitHub