MessageBox 関数
画面上にメッセージボックスをポップアップで表示させます。注意や警告、条件分岐をする時などに使われます。
データ型と構成・戻り値
int MessageBox(①, ②, ③);
戻り値は、メッセージボックスで押されたボタンによって以下の内容(値 又は 定数)で返されます。
値 | 定数 | 説明 |
---|---|---|
1 | IDOK | 「OK」ボタンが押されました。 |
2 | IDCANCEL | 「キャンセル」ボタンが押されました。 |
3 | IDABORT | 「中止」ボタンが押されました。 |
4 | IDRETRY | 「再試行」ボタンが押されました。 |
5 | IDIGNORE | 「無視」ボタンが押されました。 |
6 | IDYES | 「はい」ボタンが押されました。 |
7 | IDNO | 「いいえ」ボタンが押されました。 |
10 | IDTRYAGAIN | 「再試行」ボタンが押されました。 |
11 | IDCONTINUE | 「続行」ボタンが押されました。 |
引数 [3]
MessageBox関数は 3個の引数で構成されます。
番 号 | 引数名 | データ型 | 単位 | 初期値 | 説明 |
---|---|---|---|---|---|
① | text | string | - | - | メッセージボックスで表示する文字列。 |
② | caption | string | - | Null | メッセージボックスのヘッダーに記載する文字列。 Nullの時は、EA名が表示されます。 |
③ | flags | int | - | 0 | ボックス内ボタンの表示を定義。 ボタンの種類、アイコン、デフォルト選択ボタンの設定をします。 |
メッセージボックス内で改行する時は、文字の前後に「\n」を入れることで改行ができます。
ボックス内ボタンの表示
各設定の条件を組み合わせる時は「|」で区切って設定することになります。使用例を参考にしてください。
ボタンの種類の設定
デフォルトは【OK】ボタンが 1つ表示されます。設定する時は「値」又は「定数」のどちらかを使うことで設定ができます。
値 | 定数 | 説明 |
---|---|---|
0 | MB_OK | 1つ表示。【OK】ボタン。 |
1 | MB_OKCANCEL | 2つ表示。【OK】【キャンセル】ボタン。 |
2 | MB_ABORTRETRYIGNORE | 3つ表示。【中止】【再試行】【無視】ボタン。 |
3 | MB_YESNOCANCEL | 3つ表示。【はい】【いいえ】【キャンセル】ボタン。 |
4 | MB_YESNO | 2つ表示。【はい】【いいえ】ボタン。 |
5 | MB_RETRYCANCEL | 2つ表示。【再試行】【キャンセル】ボタン。 |
6 | MB_CANCELTRYCONTINUE | 3つ表示。【キャンセル】【再試行】【続行】ボタン。 |
アイコンの設定
デフォルトはアイコンは表示されません。設定する時は「値」又は「定数」のどちらかを使うことで設定ができます。
値 | 定数 | 説明 |
---|---|---|
0x00000010 | MB_ICONSTOP、 MB_ICONERROR、 MB_ICONHAND | ストップ アイコン |
0x00000020 | MB_ICONQUESTION | クエスチョン アイコン |
0x00000030 | MB_ICONEXCLAMATION、 MB_ICONWARNING | ビックリマーク アイコン |
0x00000040 | MB_ICONINFORMATION、 MB_ICONASTERISK | インフォメーション アイコン |
デフォルト選択ボタンの設定
デフォルトは「最初のボタンを選択設定」になっています。設定する時は「値」又は「定数」のどちらかを使うことで設定ができます。
値 | 定数 | 説明 |
---|---|---|
0x00000000 | MB_DEFBUTTON1 | 最初のボタンを選択設定。 |
0x00000100 | MB_DEFBUTTON2 | 2番目のボタンを選択設定。 |
0x00000200 | MB_DEFBUTTON3 | 3番目のボタンを選択設定。 |
0x00000300 | MB_DEFBUTTON4 | 4番目のボタンを選択設定。 |
使用例
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("選択されていません");
}
}
コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)
結果
次の順番でメッセージボックスが表示されます。
「いいえ」を選択した場合、エキスパートタブのメッセージには次のように表示されます。
コード上のボタンやアイコンを変更したりなどして、いろいろ試してみてください。