MessageBox 関数は、閉じたときに特定の戻りコードを返します。MessageBox 関数をラップして戻り値を確認し、それに基づいてコードを実行できます。
MSDN からのリターン コードは次のとおりです。
IDABORT 3 The Abort button was selected.
IDCANCEL 2 The Cancel button was selected.
IDCONTINUE 11 The Continue button was selected.
IDIGNORE 5 The Ignore button was selected.
IDNO 7 The No button was selected.
IDOK 1 The OK button was selected.
IDRETRY 4 The Retry button was selected.
IDTRYAGAIN 10 The Try Again button was selected.
IDYES 6 The Yes button was selected.
したがって、次のコードを使用して、戻りコードに基づいてさまざまな機能を実行できます。
void MyMessageBox(wstring title,wstring message)
{
int msgboxID = MessageBox(
NULL,
(LPCWSTR)message.c_str(),
(LPCWSTR)title.c_str(),
MB_ICONWARNING | MB_CANCELTRYCONTINUE | MB_DEFBUTTON2
);
switch (msgboxID)
{
case IDCANCEL:
// TODO: add code
break;
case IDTRYAGAIN:
// TODO: add code
break;
case IDCONTINUE:
// TODO: add code
break;
//so on
}
}
詳細はこちら:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms645505(v=vs.85).aspx