基本的なアプリケーションに使うクラスをCBasicApplicationとし、CApplicationを継承元とする・・・。
また、基本的なウィンドウ(メニューは付かない)に使うクラスをCBasicWindowとし、CWindowを継承元とする・・・。
まず、Window.hに、
lpctszClassName省略版Createを追加・・・。
オーバーライドされず、基底のCWindowに来る場合は、ウィンドウクラス"Window"のウィンドウとして作成・・・。
Application.cppは、
InitInstanceでは、ウィンドウクラス登録だけになり、オブジェクト生成、ウィンドウ作成、ウィンドウ表示はカット・・・。
BasicWindow.hは、
引数にhInstanceだけを取るRegisterClass・・・。
CBasicWindowなら"BasicWindow"をウィンドウクラス名として登録する・・・。
あとはコンストラクタとウィンドウクラス名の省略されたCreate・・・。
BasicWindow.cppでは、
RegisterClassは"BasicWindow"で登録・・・。
コンストラクタではCWindowのコンストラクタだけ・・・。
Createに来たら、ウィンドウクラス"BasicWindow"のウィンドウとして作成・・・。
BasicApplication.hは、
コンストラクタとInitInstance・・・。
BasicApplication.cppは、
コンストラクタはCApplicationのものを呼んでるだけ・・・。
InitInstanceでは、CApplicationのInitInstanceを呼んでから、ウィンドウクラス登録、ウィンドウオブジェクト生成、ウィンドウ作成、ウィンドウ表示となっている・・・。
WinMain.cppは、
生成するアプリケーションオブジェクトがCBasicApplicationになっている・・・。
受け取る型はCApplication *でいいが・・・。
表示は変わらず・・・。