シャットダウン中の保存確認でいいえを選択したら閉じてほしい話
保存せずにシャットダウン始めると「以下のアプリケーションがシャットダウンを妨げています」みたいな画面が出るじゃないですか。まあそれ保存しなくていいんだけど、強制終了するのもあれだし、とか思いながらシャットダウンをキャンセルするじゃないですか。
『保存しますか?』「いいえ」『……』
\答えたのにアプリが終了しない/
仕方ないので自分でウィンドウを閉じようとします(もしくは再度シャットダウン)。
『保存しますか?』
\さっき答えた/
そういうわけで
ウィンドウを手で閉じるとき同様に、キャンセル以外を選択したら終了してほしい。特に「いいえ」は二度手間になるので。
メモ帳に至っては「はい」を選べば終了してくれるようで、わざとなんだろうか?
ついでに自分でも書いてみた。
case WM_QUERYENDSESSION: ShutdownBlockReasonCreate(hWnd, _T("Block reason")); switch (MessageBox(hWnd, _T("Save?"), _T("test"), MB_YESNOCANCEL)) { case IDYES: // 保存処理 DestroyWindow(hWnd); // まあこれはどっちでもいい break; case IDNO: DestroyWindow(hWnd); // 本命 break; case IDCANCEL: // この時だけ終了しない break; } ShutdownBlockReasonDestroy(hWnd); break;
ちなみにこの話を思い出したきっかけはこのツイートなんですが、
本日の「管理人のひとこと」追記に画像を追加。「メモ帳」と「サクラエディタ」を編集中未保存状態にして、ログオフ⇒中止を繰り返す実験。 http://t.co/UobZlAcP9x こういう重箱の隅をつつくような試験も時には必要だ。 pic.twitter.com/19cRZCpMLk
— INASOFT 矢吹拓也 (@inasoft_ayacy) May 10, 2015
そのいじくるつくーるはどうなっているかというと、「保存せず閉じますよ? はい/いいえ」という二択で、
- 「はい」なら保存せず閉じる
- 「いいえ」なら保存も閉じもしない(キャンセル相当)
だったので、これはウィンドウ閉じた時と同じ挙動で違和感ないです。はい。
まあそもそもはい・いいえ・キャンセルがわかりにくいとか、TaskDialog使って何が起きるかの説明をとか、そんな気もする。