メッセージボックスを表示 MessageBox 関数

関数

共通関数

MessageBox 関数

画面上にメッセージボックスをポップアップで表示させます。注意や警告、条件分岐をする時などに使われます。

データ型と構成・戻り値

int MessageBox(①, ②, ③);

戻り値は、メッセージボックスで押されたボタンによって以下の内容(値 又は 定数)で返されます。

定数説明
  1   IDOK「OK」ボタンが押されました。
2IDCANCEL「キャンセル」ボタンが押されました。
3IDABORT「中止」ボタンが押されました。
4IDRETRY「再試行」ボタンが押されました。
5IDIGNORE「無視」ボタンが押されました。
6IDYES「はい」ボタンが押されました。
7IDNO「いいえ」ボタンが押されました。
10IDTRYAGAIN「再試行」ボタンが押されました。
11IDCONTINUE「続行」ボタンが押されました。

引数 [3]

MessageBox関数は 3個の引数で構成されます。


引数名データ型単位初期値説明
textstringメッセージボックスで表示する文字列。
captionstringNullメッセージボックスのヘッダーに記載する文字列。
Nullの時は、EA名が表示されます。
flagsint0ボックス内ボタンの表示を定義。
ボタンの種類、アイコン、デフォルト選択ボタンの設定をします。
※初期値があるものは省略可。但し、省略した引数以降は省略しなければなりません。

メッセージボックス内で改行する時は、文字の前後に「\n」を入れることで改行ができます。

ボックス内ボタンの表示

各設定の条件を組み合わせる時は「|」で区切って設定することになります。使用例を参考にしてください。

ボタンの種類の設定

デフォルトは【OK】ボタンが 1つ表示されます。設定する時は「値」又は「定数」のどちらかを使うことで設定ができます。

定数説明
  0   MB_OK1つ表示。【OK】ボタン。
1MB_OKCANCEL2つ表示。【OK】【キャンセル】ボタン。
2MB_ABORTRETRYIGNORE3つ表示。【中止】【再試行】【無視】ボタン。
3MB_YESNOCANCEL3つ表示。【はい】【いいえ】【キャンセル】ボタン。
4MB_YESNO2つ表示。【はい】【いいえ】ボタン。
5MB_RETRYCANCEL2つ表示。【再試行】【キャンセル】ボタン。
6MB_CANCELTRYCONTINUE 3つ表示。【キャンセル】【再試行】【続行】ボタン。

アイコンの設定

デフォルトはアイコンは表示されません。設定する時は「値」又は「定数」のどちらかを使うことで設定ができます。

定数説明
0x00000010MB_ICONSTOP、
MB_ICONERROR、
MB_ICONHAND
 ストップ アイコン
0x00000020MB_ICONQUESTION  クエスチョン アイコン
0x00000030MB_ICONEXCLAMATION、
MB_ICONWARNING
 ビックリマーク アイコン
0x00000040MB_ICONINFORMATION、
MB_ICONASTERISK
 インフォメーション アイコン

デフォルト選択ボタンの設定

デフォルトは「最初のボタンを選択設定」になっています。設定する時は「値」又は「定数」のどちらかを使うことで設定ができます。

定数説明
0x00000000MB_DEFBUTTON1最初のボタンを選択設定。
0x00000100MB_DEFBUTTON22番目のボタンを選択設定。
0x00000200MB_DEFBUTTON33番目のボタンを選択設定。
0x00000300MB_DEFBUTTON44番目のボタンを選択設定。

使用例

MessageBox関数によるポップアップ表示

一つ目のメッセージボックスは、最低限の設定での表示です。

二つ目のメッセージボックスは、ヘッダー、ボックス内ボタンの表示設定を行なっています。この設定は「値」又は「定数」での設定ができます。(8,9行目参照) 又、MessageBox関数の戻り値も「値」又は「定数」で取得することができます。(13,14行目参照) ご自身が分かり易い書き方をされると良いでしょう。

コード

// MessageBox関数によるポップアップ表示
#property strict
void OnInit() {
   
   MessageBox("次を表示します。"); // ①デフォルト設定
   
   int a;
   a = MessageBox("処理を続けますか?", "なるほど警告", MB_YESNOCANCEL | MB_ICONQUESTION | MB_DEFBUTTON2 ); // 定数で設定(②ヘッダー、ボタンを設定)
   //a = MessageBox("エラーが発生しました", "なるほど警告", 3 | 0x00000020 | 0x00000100 );                  // 値で設定
   
   if(a==1) {
      Print("「OK」が選択されました");
   //} else if(a==2) {      // 戻り値で取得
   } else if(a==IDCANCEL) { // 定数で取得
      Print("「キャンセル」が選択されました");
   } else if(a==3) {
      Print("「中止」が選択されました");
   } else if(a==4) {
      Print("「再試行」が選択されました");
   } else if(a==5) {
      Print("「無視」が選択されました");
   } else if(a==6) {
      Print("「はい」が選択されました");
   } else if(a==7) {
      Print("「いいえ」が選択されました");
   } else if(a==10) {
      Print("「再試行」が選択されました");
   } else if(a==11) {
      Print("「続行」が選択されました");
   } else {
      Print("選択されていません");
   }
}

コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)

結果

次の順番でメッセージボックスが表示されます。

 
「いいえ」を選択した場合、エキスパートタブのメッセージには次のように表示されます。


コード上のボタンやアイコンを変更したりなどして、いろいろ試してみてください。

タイトルとURLをコピーしました