Aoi #4 基本となるアプリケーションとウィンドウ

基本的なアプリケーションに使うクラスを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 *でいいが・・・。

f:id:BG1:20170114041439p:plain

表示は変わらず・・・。

・基本となるアプリケーションとウィンドウ · bg1bgst333/Aoi@85e4e82 · GitHub