PostQuitMessageは、アプリケーションの終了要求(WM_QUIT)ウィンドウメッセージを送出するWindowsAPI・・・。
これまでは、メッセージループ中でHTCLOSEを拾ったりしていたが、これは正しくない・・・。
PostQuitMessageを使って、正しいウィンドウアプリケーションの終了方法を実装する・・・。(ようやくだ・・・。)
WindowProcで、
ウィンドウが破棄されたとき(WM_DESTROYが来たとき)に、PostQuitMessageを送信する・・・。
引数にはこのアプリが終了するときの終了コードを指定する・・・。まあ、0でいい・・・。
で、これまでは無限ループだったメッセージループを、
GetMessageの戻り値を見て、判定する・・・。
PostQuitMessageによってWM_QUITが送信され、GetMessageはそれを受け取ると0を返す・・・。
すると、whileの条件は偽になるのでメッセージループから抜ける・・・。
ちなみにエラーで-1を返す場合もあるので、'>'にすべき・・・。
一応、msg.wParamに終了コードが入ってるので、
と返してあげる・・・。
実行してみると、
と表示されて、閉じるボタンでちゃんと閉じられる、でアプリがちゃんと終了する・・・。
Sample/PostQuitMessage.cpp at master · bg1bgst333/Sample · GitHub