DoModalを利用してIDOK、IDCANCEL以外の戻り値を返す

[戻る]
miniK 2005/05/13(金) 14:30:50
MFC VC++6.0 WinXP sp2

DoModalを利用してIDOK、IDCANCEL以外の戻り値を返すことは可能でしょうか?

下のサンプルは、MyOverWriteDlgを構築して終了したときのメッセージを受け取る
サンプルです。
しかし、実際はIDOKとIDCANCELでしかメッセージを受け取れません。
IDC_BUTTON_ALL_WRITEは上書き保存ボタンを押下して終了したボタンIDです。
IDC_BUTTON_NOはいいえボタンを押下して終了したボタンIDです。
これらの二つはメッセージとして受け取れません。
どうすればよいでしょうか?

OverWriteDlg MyOverWriteDlg;
int result = MyOverWriteDlg.DoModal();

switch(result){

    case IDOK:                    // OKボタン押下
時    
        finder.Close();
        return true;
    case IDCANCEL:                // キャンセルボタン押下時
        finder.Close();
        return false;
    case IDC_BUTTON_ALL_WRITE:    // 全て上書きを押下時
        finder.Close();
        return true;
    case IDC_BUTTON_NO:            // いいえを押下時
        finder.Close();
        return false;
}

επιστημη 2005/05/13(金) 14:34:08
CDialog::EndDialog() が使えるでしょう。
マニュアルを読んでください。

miniK 2005/05/13(金) 15:12:53
[[解決]]
無事できました。
επιστημηさんありがとうございました。


void OverWriteDlg::OnButtonAllWrite() 
{
    // エンドダイアログでIDC_BUTTON_ALL_WRITEを引数にして終了
    EndDialog(IDC_BUTTON_ALL_WRITE);
}

古いスレッドには追加発言できません。