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;
}
CDialog::EndDialog() が使えるでしょう。
マニュアルを読んでください。
無事できました。
επιστημηさんありがとうございました。
void OverWriteDlg::OnButtonAllWrite()
{
// エンドダイアログでIDC_BUTTON_ALL_WRITEを引数にして終了
EndDialog(IDC_BUTTON_ALL_WRITE);
}