CWinApp::InitInstanceは、アプリケーションの初期化を行うメンバ関数・・・。
CWinAppの派生クラスを定義し、CWinAppからこのメンバ関数をオーバーライドして、独自の初期化処理を書く・・・。
初期化成功ならTRUEを返し、失敗ならFALSEを返す・・・。
今回は、初期化処理というより、戻り値にTRUEを返したときと、FALSEを返したときの違いを確認する・・・。
"はい", "いいえ"選択型メッセージボックスを表示し、"はい"ならTRUEを返して、初期化成功とする・・・。
その場合は、もうひとつオーバーライドしておいたメンバ関数Runが実行され、メッセージボックスで"Run"が表示される・・・。
"いいえ"の場合は、FALSEを返す・・・。Runは実行されず、プログラムは終了する・・・。
CWinApp_.hでは、InitInstanceとRunをオーバーライドしておく・・・。
このクラスをさらに継承したクラスからもオーバーライドできるようにvirtualをつけておく・・・。
CWinApp_.cppのInitInstanceの定義では、
MB_YESNOなAfxMessageBoxで、IDYES("はい")ならTRUEを返し、そうでない("いいえ")ならFALSEを返す・・・。
Runでは、
MB_OKなAfxMessageBoxで、"Run"と表示する・・・。
実行すると、まずInitInstanceが呼ばれて、
と、訊いてくるので、"はい"を選択・・・。
すると、
Runを呼んで、"Run"と表示される・・・。
"いいえ"なら、Runは呼ばれずに終了する・・・。
InitInstanceの戻り値で、このように動作が変わる・・・。
Sample/CWinApp_.h at master · bg1bgst333/Sample · GitHub
Sample/CWinApp_.cpp at master · bg1bgst333/Sample · GitHub