ソースを御用意しましたので、こちらをご覧ください。
ではMessageBoxの使い方を見てみましょう。
int r; ・・・ //キーが入力された case WM_KEYDOWN: //メッセージボックス r = MessageBox(hwnd,TEXT("Keydown Exit?"),TEXT("Attention!"),MB_OKCANCEL|MB_ICONSTOP); if(r==IDOK) SendMessage (hwnd, WM_CLOSE, 0, 0); return 0 ;
MessageBox 関数でメッセージボックスが表示されている間は、
右上の×ボタンやOKボタンが表示されません。
戻り値として、選択したボタンの整数値が返るので、それを変数に一時格納します。
そして、その値によって処理を分岐させることができます。
ここでは、SendMessage 関数によって「OKなら終了する」ようにしています。
int MessageBox (HWND hWnd , LPCSTR lpText, LPCSTR lpCaption, UINT uType);
・メッセージボックスを表示します
第一引数 hWnd には、windowのハンドルを指定します
第二引数 lpText には、メッセージの文字列を指定します
第三引数 lpCaption には、メッセージボックスバーのタイトルの文字列を指定します
第四引数 uType には、表示するボタン・アイコン等のフラグを指定します
uTypeのパラメータ・ボタン MB_OK:OKボタン
MB_OKCANCEL:「OK」「キャンセル」ボタン
MB_YESNO:「YES」「NO」ボタン
MB_YESNOCANCEL:「YES」「NO」「キャンセル」ボタン
MB_RETRYCANCEL:「再試行」「キャンセル」ボタン
MB_ABORTRETRYIGNORE:「中止」「再試行」「無視」ボタン
uTypeのパラメータ・アイコン MB_ICONQUESTION:「疑問符」アイコン
MB_ICONINFORMATION:「インフォメーション」アイコン
MB_ICONWARNING:「感嘆符」アイコン
MB_ICONERROR:「ストップマーク」アイコン
uTypeのパラメータ・デフォルト MB_DEFBUTTON1:ボタン1をデフォルト選択に設定
MB_DEFBUTTON2:ボタン2をデフォルト選択に設定
MB_DEFBUTTON3:ボタン3をデフォルト選択に設定
uTypeのパラメータ・etc MB_APPLMODAL:?(効果不明)
MB_SETFOREGROUND:?(効果不明)
※属性の違うパラメータ(ボタン・アイコンetc)は「|」を使い、組み合わせて使います。
戻り値 「YES」→IDYES・「NO」→IDNO・「OK」→IDOK・「RETRY」→IDRETRY・「キャンセル」→IDCANCEL 等
2005/5/14