forked from airat77786/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;
| |||
}
| |||
*/
| |||
}
| |||
//+------------------------------------------------------------------+
|