ユーザーにメッセージを通知する
おなじみのメッセージボックスです。MT4(MQL)でもありますし、ごくごく基本的な機能かと思いきや、実はcTraderではバージョン4.3のアップデートででやっと追加されました。
これまでもメッセージボックスらしきものを表示させることはできなくはなかったのですが、下記記事のようにどうも不便だったんですよね。
-
【cAlgo】cBotでMessageBoxを表示する【Tips & Sample】
メッセージボックスを表示したい! ツール系のcBotとか作ってるとユーザー向けにメッセージボックスを表示してあげたいことがでてきます。こーゆーの。 MT4(MQL)だとMessageBox関数呼び出す ...
続きを見る
cTrader4.3以上をお使いなら、こんな面倒なことする必要はありません。cTraderのAPIから簡単にメッセージボックスが使えるようになりました。
MessageBoxクラス
public static class MessageBox
静的クラスとして定義されています。
メソッド
(MessageBoxResult) Show (string messageBoxText)
(MessageBoxResult) Show (string messageBoxText, string caption)
(MessageBoxResult)Show (string messageBoxText, string caption, MessageboxButton button)
(MessageBoxResult)Show (string messageBoxText, string caption, MessageboxButton button, MessageBoxImage icon)
(MessageBoxResult)Show (string messageBoxText, string caption, MessageboxButton button, MessageBoxImage icon, MessageBoxResult defaultResult)
(MessageBoxResult)Show (Window owner, string messageBoxText)
(MessageBoxResult)Show (Window owner, string messageBoxText, string caption)
(MessageBoxResult)Show (Window owner, string messageBoxText, string caption, MessageboxButton button)
(MessageBoxResult)Show (Window owner, string messageBoxText, string caption, MessageboxButton button, MessageBoxImage icon)
(MessageBoxResult)Show (Window owner, string messageBoxText, string caption, MessageboxButton button, MessageBoxImage icon, MessageBoxResult defaultResult)
メッセージボックスを表示します。なんだかShow一つでいっぱいパターンがあるように見えますが、メッセージ本文だけが必須指定でほかはすべてオプションと考えとけばOKです。
MessageBox.Show([親ウィンドウ]、 メッセージ本文、[タイトル], [ボタンタイプ], [アイコン], [デフォルトの結果])
ただ使うだけなら親ウィンドウは指定しなくていです。メッセージ本文とタイトルは好きな文字列を、ボタンタイプ、アイコン、結果は下記列挙型の説明を参考に好きなものを指定してください。
サンプルコード
MessageBox.Show("is this OK?", "check message", MessageBoxButton.YesNoCancel, MessageBoxImage.Question, MessageBoxResult.No);
これでこう表示されます。DefaultMessageBoxResultがNoなので、このままEnterを押すと結果としてNoが返ります。
MessageBoxResult列挙型
メッセージボックスの返り値として「ユーザーがどのボタンを押したか」というメッセージボックスの結果を表します。
None | デフォルト値 |
OK | OKボタンが押された |
Cancel | キャンセルボタンが押された |
Yes | Yesボタンが押された |
No | Noボタンが押された |
MessageBoxButton列挙型
メッセージボックスに表示するボタンタイプを表します。
OK | OKボタンのみ。デフォルトこれ。 |
OkCancel | Okボタンとキャンセルボタン |
YesNoCancel | Yesボタン、Noボタン、Cancelボタンの3つ |
YesNo | YesボタンとNoボタン |
MessageBoxImage列挙型
メッセージボックスに表示するアイコンタイプを表します。
これです。
None | アイコンなし。 |
Error | |
Question | |
Warning | |
Information |