メッセージボックスの定数
メッセージボックスの定数は、MessageBox関数を使用するときに使われます。
MessageBox関数は、チャート以外のウィンドウを表示させることができる関数です。
例えば、注意事項を表示させたいときや、YES/NOを選択させたいときに使うと良いでしょう。
MessageBox関数の出力と引数で分けて見てみましょう。
メッセージボックスの定数(出力用)
定数 | 数値 | 説明 |
IDOK | 1 | OKボタンが押された |
IDCANCEL | 2 | キャンセルボタンが押された |
IDABORT | 3 | 中止ボタンが押された |
IDRETRY | 4 | 再試行ボタンが押された |
IDIGNORE | 5 | 無視ボタンが押された |
IDYES | 6 | YESボタンが押された |
IDNO | 7 | NOボタンが押された |
IDTRYAGAIN | 10 | 再実行ボタンが押された |
IDCONTINUE | 11 | 続行ボタンが押された |
メッセージボックスの定数(引数用)
メッセージボックスのオプション引数は、3つに分かれています。
それぞれ確認していきます。
メッセージボックスのオプション引数(1番目)
メッセージボックスのボタンの数や種類を設定する定数です。
定数 | 数値 | 説明 |
MB_OK | 0x00000000 | ボタン1つのメッセージボックスを作成 [OK] |
MB_OKCANCEL | 0x00000001 | ボタン2つのメッセージボックスを作成 [OK] [キャンセル] |
MB_ABORTRETRYIGNORE | 0x00000002 | ボタン3つのメッセージボックスを作成 [中止] [再試行] [無視] |
MB_YESNOCANCEL | 0x00000003 | ボタン3つのメッセージボックスを作成 [YES] [NO] [キャンセル] |
MB_YESNO | 0x00000004 | ボタン2つのメッセージボックスを作成 [YES] [NO] |
MB_RETRYCANCEL | 0x00000005 | ボタン2つのメッセージボックスを作成 [再試行] [キャンセル] |
MB_CANCELTRYCONTINUE | 0x00000006 | ボタン3つのメッセージボックスを作成 [キャンセル] [再実行] [続行] |
メッセージボックスのオプション引数(2番目)
メッセージボックスのアイコンを設定する定数です。
定数 | 数値 | 説明 |
MB_ICONSTOP | 0x00000010 | ストップアイコン |
MB_ICONERROR | 0x00000010 | エラーアイコン |
MB_ICONHAND | 0x00000010 | ハンドアイコン |
MB_ICONQUESTION | 0x00000020 | クエスチョンアイコン |
MB_ICONEXCLAMATION | 0x00000030 | 感嘆符アイコン |
MB_ICONWARNING | 0x00000030 | 警告アイコン |
MB_ICONINFORMATION | 0x00000040 | インフォメーションアイコン |
MB_ICONASTERISK | 0x00000040 | アスタリスクアイコン |
メッセージボックスのオプション引数(3番目)
メッセージボックスのデフォルトで選択されているボタンを設定する定数です。
定数 | 数値 | 説明 |
MB_DEFBUTTON1 | 0x00000000 | 1番目のボタンをデフォルトに設定 |
MB_DEFBUTTON2 | 0x00000100 | 2番目のボタンをデフォルトに設定 |
MB_DEFBUTTON3 | 0x00000200 | 3番目のボタンをデフォルトに設定 |
MB_DEFBUTTON4 | 0x00000300 | 4番目のボタンをデフォルトに設定 |
メッセージボックスの定数の使い方
メッセージボックスの定数は、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("他");
}
}
上記のように記述することで、以下のようなメッセージボックスが表示されます。
※文字化けする可能性がありますので、文字コードを指定すると改善されます。