FormCloseQuery で 保存確認ダイアログ を表示させる


目的

 タイトルどおり。ウィンドウの×ボタンとか、キャンセルボタンをクリックしたときに
 「保存してないけど大丈夫か?」みたいなメッセージを出します

ポイント

 MessageBox() の 返り値でキャンセルボタンを認識。
 OnCloseQuery()で終了時処理を認識します。
 場合によってやっぱ終了するんやーめた を CanCloseで操作できます。
 というわけで、下記のコード。

file01.cpp
void __fastcall TEditorTool::FormCloseQuery(TObject *Sender, bool &CanClose)
{
    if (isCancel()) {
        // [キャンセル]時は終了しない
        CanClose = false;
    }
}

bool isCancel()
{
    bool ret = 0;
    int message_ret = MessageBox(Handle, _T("現在の設定は保存されていません、保存しますか?"), _T("確認"), MB_YESNOCANCEL);
    if (message_ret == IDCANCEL) {
            ret = 1;
        }
    return ret;
}