MessageBoxを表示する

GUIプログラムの特徴である。MessageBoxを使ってみます。
これにより、簡単に文字メッセージを表示したり
選択肢の結果による分岐を使って簡単なゲームを作ったりも出来ます。

・MessageBoxを使ってみよう

ソースを御用意しましたので、こちらをご覧ください。

メッセージボックスサンプル

では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


戻る