InitInstance

ここからは、MFCを使わずにC/C++とWindowsAPIだけでアプリケーションを作る時に、どういう風に自作関数や自作クラスでプログラムをまとめていくかを書いていく・・・。

とりあえずMFCベースの軽量なウィンドウクラスやアプリケーションクラスを考えているが、まずはウィンドウの生成や表示などの初期化処理を関数InitInstanceにまとめてみる・・・。

MFCベースとは言ったけど、CWinApp::InitInstanceとまったく同じではない・・・。
_tWinMainからhInstanceなどの引数が欲しいからだ・・・。
既に使われていないhPrevInstance以外は、いちおうInitInstanceに渡すつもりなので、オリジナル(CWinApp::InitInstance)と違い引数を3つもっている・・・。

InitInstanceの定義は、

ウィンドウクラスを組み立てて、登録・・・。このとき渡されたhInstanceが役に立つ・・・。

それが成功したらウィンドウの作成と表示・・・。

これらが成功したらTRUE、登録か作成が失敗したらFALSEを返すようにしている・・・。
この辺の特徴はオリジナルと同じ・・・。

_tWinMainからは、

こんな感じで呼び出す・・・。_tWinMainがすっきりした・・・。

この部分はまだ残している・・・。次回以降、このあたりも移動させる・・・。

実行すると、

f:id:BG1:20150427130313p:plain

ウィンドウが表示されるだけ・・・。
まあ、SampleのPostQuitMessageでやったような単純なウィンドウ表示プログラムをちょっといじっただけだから当然・・・。

https://github.com/bg1bgst333/Test/blob/master/winapi/InitInstance/InitInstance/src/InitInstance/InitInstance/WinMain.cpp