MFCのCFrameWndに相当する基本的なウィンドウクラスCWindowを作成する・・・。
まず、Window.hのCWindowの定義では、
ウィンドウハンドルm_hWndとコンストラクタ、デストラクタを用意・・・。
といってもWindow.cppでは、
コンストラクタでm_hWndをNULLにしてるだけ・・・。
CApplicationのメンバとして、
このCWindowクラスのオブジェクトポインタm_pMainWindowを用意・・・。
InitInstance内にて、
RegisterClassの後に、CWindowオブジェクトを作成し、m_pMainWindowに格納・・・。
その後、
CreateWindowの戻り値のウィンドウハンドルをm_pMainWindow->m_hWndに格納・・・。
失敗してNULLなら、エラー・・・。
成功ならm_pMainWindow->m_hWndをShowWindowに渡してウィンドウ表示・・・。
また、m_pMainWindow->m_hWndは、
OnIdleにおけるデバイスコンテキスト取得、解放にも使っている・・・。
(なので、このプログラムにはグローバル変数g_hWndがない・・・。)
ExitInstanceでは、
m_pMainWindowにアドレスが入っていたら(NULLでなかったら)、deleteで削除する・・・。
ExitInstanceは、Runが終了する直前だけではなく、
InitInstanceに失敗したときも呼ばれるので、メモリリークの心配はない・・・。
変わらずlCountを表示できた・・・。
https://github.com/bg1bgst333/Test/blob/master/winapi/CWindow/CWindow/src/CWindow/CWindow/WinMain.cpp
https://github.com/bg1bgst333/Test/blob/master/winapi/CWindow/CWindow/src/CWindow/CWindow/Application.h
https://github.com/bg1bgst333/Test/blob/master/winapi/CWindow/CWindow/src/CWindow/CWindow/Application.cpp
https://github.com/bg1bgst333/Test/blob/master/winapi/CWindow/CWindow/src/CWindow/CWindow/Window.h
https://github.com/bg1bgst333/Test/blob/master/winapi/CWindow/CWindow/src/CWindow/CWindow/Window.cpp