forked from rosh/MQL5Book
109 lines
4.5 KiB
MQL5
109 lines
4.5 KiB
MQL5
//+------------------------------------------------------------------+
| |
//| OutputMessage.mq5 |
| |
//| Copyright 2021, MetaQuotes Ltd. |
| |
//| https://www.mql5.com |
| |
//+------------------------------------------------------------------+
| |
#property script_show_inputs
| |
| |
//+------------------------------------------------------------------+
| |
//| Message box buttons |
| |
//| |
| |
//| There can be up to 3 buttons, which close the dialog |
| |
//| with specific result code (see ENUM_MB_RESULT below). |
| |
//| There is also an option to show Help button with special |
| |
//| MB_HELP constant (which could count as 4-th button). |
| |
//| But it does not close the dialog and clicks on it are not |
| |
//| yet forwarded to MQL-programs. |
| |
//+------------------------------------------------------------------+
| |
enum ENUM_MB_BUTTONS
| |
{
| |
_OK = MB_OK, // Ok
| |
_OK_CANCEL = MB_OKCANCEL, // Ok | Cancel
| |
_ABORT_RETRY_IGNORE = MB_ABORTRETRYIGNORE, // Abort | Retry | Ignore
| |
_YES_NO_CANCEL = MB_YESNOCANCEL, // Yes | No | Cancel
| |
_YES_NO = MB_YESNO, // Yes | No
| |
_RETRY_CANCEL = MB_RETRYCANCEL, // Retry | Cancel
| |
_CANCEL_TRYAGAIN_CONTINUE = MB_CANCELTRYCONTINUE, // Cancel | Try Again | Continue
| |
};
| |
| |
//+------------------------------------------------------------------+
| |
//| Message box icons |
| |
//+------------------------------------------------------------------+
| |
enum ENUM_MB_ICONS
| |
{
| |
_ICON_NONE = 0, // None
| |
_ICON_QUESTION = MB_ICONQUESTION, // Question
| |
_ICON_INFORMATION_ASTERISK = MB_ICONINFORMATION, // Information (Asterisk)
| |
_ICON_WARNING_EXCLAMATION = MB_ICONWARNING, // Warning (Exclamation)
| |
_ICON_ERROR_STOP_HAND = MB_ICONERROR, // Error (Stop, Hand)
| |
};
| |
| |
//+------------------------------------------------------------------+
| |
//| Message box defaults (initially focused button) |
| |
//+------------------------------------------------------------------+
| |
enum ENUM_MB_DEFAULT
| |
{
| |
_DEF_BUTTON1 = MB_DEFBUTTON1, // Default button 1-st
| |
_DEF_BUTTON2 = MB_DEFBUTTON2, // Default button 2-nd
| |
_DEF_BUTTON3 = MB_DEFBUTTON3, // Default button 3-rd
| |
_DEF_BUTTON4 = MB_DEFBUTTON4, // Default button 4-th
| |
};
| |
| |
//+------------------------------------------------------------------+
| |
//| Message box results |
| |
//+------------------------------------------------------------------+
| |
enum ENUM_MB_RESULT
| |
{
| |
_ID_UNDEFINED = 0,
| |
_ID_OK = IDOK,
| |
_ID_CANCEL = IDCANCEL,
| |
_ID_ABORT = IDABORT,
| |
_ID_RETRY = IDRETRY,
| |
_ID_IGNORE = IDIGNORE,
| |
_ID_YES = IDYES,
| |
_ID_NO = IDNO,
| |
_ID_TRYAGAIN = IDTRYAGAIN,
| |
_ID_CONTINUE = IDCONTINUE,
| |
};
| |
| |
//+------------------------------------------------------------------+
| |
//| Inputs |
| |
//+------------------------------------------------------------------+
| |
input string Message = "Message";
| |
input string Caption = "";
| |
input ENUM_MB_BUTTONS Buttons = _OK;
| |
input ENUM_MB_ICONS Icon = _ICON_NONE;
| |
input ENUM_MB_DEFAULT Default = _DEF_BUTTON1;
| |
input bool ShowHelpButton = false;
| |
| |
//+------------------------------------------------------------------+
| |
//| Script program start function |
| |
//+------------------------------------------------------------------+
| |
void OnStart()
| |
{
| |
const string text = Message + "\n"
| |
+ EnumToString(Buttons) + ", "
| |
+ EnumToString(Icon) + ","
| |
+ EnumToString(Default);
| |
ENUM_MB_RESULT result = (ENUM_MB_RESULT)
| |
MessageBox(text, StringLen(Caption) ? Caption : NULL, Buttons | Icon | Default | (ShowHelpButton ? MB_HELP : 0));
| |
Print(EnumToString(result));
| |
| |
/*
| |
// example of result processing
| |
// you can use 'if' as well
| |
switch(result)
| |
{
| |
case IDYES:
| |
// ...
| |
break;
| |
case IDNO:
| |
// ...
| |
break;
| |
case IDCANCEL:
| |
// ...
| |
break;
| |
}
| |
*/
| |
}
| |
//+------------------------------------------------------------------+
|