【MQL4定数】メッセージボックスの定数​

【辞書】MQLリファレンス

メッセージボックスの定数​

メッセージボックスの定数​は、MessageBox関数を使用するときに使われます。

MessageBox関数は、チャート以外のウィンドウを表示させることができる関数です。

例えば、注意事項を表示させたいときや、YES/NOを選択させたいときに使うと良いでしょう。

MessageBox関数の出力と引数で分けて見てみましょう。

メッセージボックスの定数​(出力用)

定数数値説明
IDOK1OKボタンが押された
IDCANCEL2キャンセルボタンが押された
IDABORT3中止ボタンが押された
IDRETRY4再試行ボタンが押された
IDIGNORE5無視ボタンが押された
IDYES6YESボタンが押された
IDNO7NOボタンが押された
IDTRYAGAIN10再実行ボタンが押された
IDCONTINUE11続行ボタンが押された

メッセージボックスの定数​(引数用)

メッセージボックスのオプション引数は、3つに分かれています。

それぞれ確認していきます。

メッセージボックスのオプション引数(1番目)

メッセージボックスのボタンの数や種類を設定する定数です。

定数数値説明
MB_OK0x00000000ボタン1つのメッセージボックスを作成
[OK]
MB_OKCANCEL0x00000001ボタン2つのメッセージボックスを作成
[OK] [キャンセル]
MB_ABORTRETRYIGNORE0x00000002ボタン3つのメッセージボックスを作成
[中止] [再試行] [無視]
MB_YESNOCANCEL0x00000003ボタン3つのメッセージボックスを作成
[YES] [NO] [キャンセル]
MB_YESNO0x00000004ボタン2つのメッセージボックスを作成
[YES] [NO]
MB_RETRYCANCEL0x00000005ボタン2つのメッセージボックスを作成
[再試行] [キャンセル]
MB_CANCELTRYCONTINUE0x00000006ボタン3つのメッセージボックスを作成
[キャンセル] [再実行] [続行]

メッセージボックスのオプション引数(2番目)

メッセージボックスのアイコンを設定する定数です。

定数数値説明
MB_ICONSTOP0x00000010ストップアイコン
MB_ICONERROR0x00000010エラーアイコン
MB_ICONHAND0x00000010ハンドアイコン
MB_ICONQUESTION0x00000020クエスチョンアイコン
MB_ICONEXCLAMATION0x00000030感嘆符アイコン
MB_ICONWARNING0x00000030警告アイコン
MB_ICONINFORMATION0x00000040インフォメーションアイコン
MB_ICONASTERISK0x00000040アスタリスクアイコン

メッセージボックスのオプション引数(3番目)

メッセージボックスのデフォルトで選択されているボタンを設定する定数です。

定数数値説明
MB_DEFBUTTON10x000000001番目のボタンをデフォルトに設定
MB_DEFBUTTON20x000001002番目のボタンをデフォルトに設定
MB_DEFBUTTON30x000002003番目のボタンをデフォルトに設定
MB_DEFBUTTON40x000003004番目のボタンをデフォルトに設定

メッセージボックスの定数​の使い方

メッセージボックスの定数​は、MessageBox関数で使用されます。

MessageBox関数のオプション引数として、メッセージボックスの定数が使われます。

例えば、以下のように使用します。

サンプルプログラム

//+------------------------------------------------------------------+
//| メッセージボックスの定数 サンプルプログラム                        |
//+------------------------------------------------------------------+
void OnInit()
{
    // メッセージボックスの出力を格納する変数
    int msgret;

    // ボタン3つのメッセージボックスを作成
    // インフォメーションアイコン
    // 2番目のボタンをデフォルトに設定
    msgret = MessageBox("テストメッセージ",
                        "ヘッダ",
                        MB_ICONINFORMATION | MB_YESNOCANCEL | MB_DEFBUTTON2);

    // 押されたボタンによって表示を変える
    if(msgret == IDYES)
    {
        Print("はい");
    }
    else if(msgret == IDNO)
    {
        Print("いいえ");
    }
    else if(msgret == IDCANCEL)
    {
        Print("キャンセル");
    }
    else
    {
        Print("他");
    }
}

 

上記のように記述することで、以下のようなメッセージボックスが表示されます。

※文字化けする可能性がありますので、文字コードを指定すると改善されます。

メッセージボックスの表示例

プログラムの解説

上記のサンプルプログラムでは、MessageBox関数の第3引数にメッセージボックスの定数を組み合わせて指定しています。

複数の定数を組み合わせるには、「|」(OR演算子)を使用します。

この例では以下の3つの定数を組み合わせています。

  • MB_ICONINFORMATION:インフォメーションアイコンを表示
  • MB_YESNOCANCEL:[YES] [NO] [キャンセル] の3つのボタンを表示
  • MB_DEFBUTTON2:2番目のボタン(NO)をデフォルトで選択状態にする

MessageBox関数の戻り値は、ユーザーが押したボタンに対応する出力用の定数(IDYES、IDNO、IDCANCELなど)が返されます。

戻り値をif文で判定することで、ユーザーが押したボタンに応じた処理を実行できます。