用 MQL 编写的用户界面图库 - 页 49

 
Реter Konow #:

没错,是阴影,还有角度、照明、眩光.....

没时间做这些了。

这取决于你,这只是一个答案。

通常情况下,答案的存在会让人感到欣慰,而不是答案的实现与否。

这是心理学的事实。

---

眩光只会出现在不平整的表面上,比如一个球,一个圆环。

 
当我尝试绘制按钮边框时,首先使用渐变功能将主色调分割成一系列色调。获得原色范围后,我用该范围中选定的颜色重新绘制了边框线。结果很糟糕。不自然。我试着沿着重复按钮边框原灰色弧度的曲线移动范围。同样效果不佳。更确切地说,有些颜色我几乎完全吻合,有些则不然。后来我明白了,我需要一些特殊的公式来混合边框线的灰色和按钮的颜色。但我无法很快想到这个公式。我放弃了这个想法。
 
Реter Konow #:
当我尝试绘制按钮边框时,首先使用渐变功能将主色调分割成一个范围。在获得原色(按钮的颜色)的深浅范围后,我简单地用从范围中选择的颜色重新绘制了边框线。结果很糟糕。不自然。我试着用一条重复按钮边框原始灰色曲率的曲线在该范围内移动。效果并不好。更确切地说,对于某些颜色,我得到了几乎完全相同的效果,而对于其他颜色,则完全不行。后来我明白了,我需要一些公式来将框架每一行的灰色与按钮的颜色混合起来。但我无法很快想出公式。于是我放弃了。

灰色有什么用?

你需要一种对比色;)

我需要它看起来又好又漂亮。

红/绿

黄色/蓝色

等等。

看到艺术家的技巧了吗?

嗯,当你已经想通了,就不美了,这是一个可预见的标准.....

对于那些不知道的人来说,这才是正常的。

 

我们现在只能将图形的缺点视为既定事实。

让我们回归正题--标记语言和功能。

谢谢大家的意见。

颜色和图标的问题 到此为止

 



//------------------------------------------------------ 
//DECLARE A NEW WINDOW
//------------------------------------------------------ 
NEW_WINDOW,  
//------------------------------------------------------
/*SET WINDOW TYPE*/             W_TYPE, DIALOG,  
//------------------------------------------------------
/*WRITE WINDOW'S NAME*/         W_NAME, "Sorry, this order is blocked.",
//------------------------------------------------------
/*SET WINDOW'S CAPTION*/        CAPTION, "Risk managment",
//------------------------------------------------------
/*NAME (CAPTION)IN THE MIDDLE*/ NIM,  
//------------------------------------------------------
/*POINT TO WINDOW'S ICON*/      W_ICON, "::Images\\16x16\\No.bmp",   
//------------------------------------------------------
/*ONLY CLOSING BUTTON*/         ONLY_CLOSING, 
//------------------------------------------------------
/*WINDOW ALWAYS ON TOP*/        ALWAYS_ON_TOP, 
//------------------------------------------------------
/*OPEN WINDOW WITH A SOUND*/    OPENING_SOUND,"::Sounds\\Windows Foreground.wav", 
//------------------------------------------------------ 
/*WINDOW OPENS AT START*/       OPEN_ON_INIT,  /*(OOI)*/
//------------------------------------------------------
/*LOCK WINDOWS IF OPENED*/      LOCKS_WINDOWS, ALL_WINDOWS,   
//------------------------------------------------------
/*MARGINS OF THE WINDOW*/       MARGINS, 12,17,/*Х, Y*/
//------------------------------------------------------
//----------------------------------------------------------------------------------
//----------------------------------------------------------------------------------
GROUP, A,
//------------------------------------------------------
__, T_BOX,  "T1", TEXT,
//------------------------------------------------------
                  "Sorry, this order was closed.",
//------------------------------------------------------                 
                  END, 
//------------------------------------------------------                 
END_GROUP,
//--------------------------
i, AT, _X2X, "MF",   1, _Y2Y, "MF", 1,
//--------------------------
"T1",_A3_,0,
//--------------------------
"T1", W,406,
//--------------------------
"T1", H,38,
//--------------------------
"T1", text,_C1_,10,
//--------------------------
"T1", text,_C2_,10,
//--------------------------
"T1",FONT_SIZE,10,
//--------------------------
"T1",TEXT_STYLE,(int)FW_BOLD,
//--------------------------
"T1",text,N_COLOR,(int)clrRed,
//--------------------------
//----------------------------------------------------------------------------------
GROUP, A,
//----------------------------------------------------------------------------------
__, T_BOX,  "T3",TEXT,
                 "*Automated risk managment system denied opening new order.", 
//----------------------------------------------------------------------------------                 
                 END,
GAP,10,
//----------------------------------------------------------------------------------                 
__, T_BOX,  "T4",TEXT,
                 "*Reason: According to the preset settings the risk is too",
                 "high for your deposit. You may have to consider reducing",
                 "lot or change risk managment settings.",
                 END,
//----------------------------------------------------------------------------------                 
END_GROUP,
//--------------------------
i, AT, _X2X, "MF", 1, _Y2H, "T1", 5,
//--------------------------
"T3",TEXT_STYLE,(int)FONT_ITALIC,
//--------------------------
"T4",TEXT_STYLE,(int)FW_BOLD,
//--------------------------
"T3",text,_C1_,55,
//--------------------------
"T4",text,_C1_,55,
//--------------------------
"T3",N_COLOR,(int)C'240,240,240',
//--------------------------
"T4",N_COLOR,(int)C'240,240,240',
//--------------------------
"T3",H,20,
//--------------------------
"T4",H,55,
//----------------------------------------------------------------------------------

//----------------------------------------------------------------------------------
GROUP, A,
//----------------------------------------------------------------------------------
__, LABEL,A,  _,N_LABEL,"::Images\\32x32\\No.bmp", _,N_COLOR,(int)clrWhite,
//----------------------------------------------------------------------------------
END_GROUP,
//------------------------------------
i, AT, _X2X, "T1", 350, _Y2Y, "T1", 3,
//----------------------------------------------------------------------------------

//----------------------------------------------------------------------------------
GROUP, A,
//----------------------------------------------------------------------------------
__, LABEL,"EFEW", _,N_LABEL,"::Images\\32x32\\Error.bmp", 
//----------------------------------------------------------------------------------
END_GROUP,
//-----------------------------------
i, AT, _X2X, "MF", 10, _Y2H, "T1", 5,
//----------------------------------------------------------------------------------

//----------------------------------------------------------------------------------
GROUP, A,
//----------------------------------------------------------------------------------
__, D_BUTTON, "OK",  CWIP, _,W,40, _,POINTED,0,
//----------------------------------------------------------------------------------
                   _,N_FRAME_COLOR, (int)C'51,153,255',
                   //--------------------------------------------------------------- 
                   _,N_COLOR,       (int)C'236,244,254',
//----------------------------------------------------------------------------------
END_GROUP,
//------------------------------------
i, AT, _W2W, "MF", -7, _Y2H, "T4", 10,
//----------------------------------------------------------------------------------
 
//----------------------------------------------------------------------------------
GROUP, A,
//----------------------------------------------------------------------------------
__, H_LINE,"H1", W,400, _,NG_LINES,200, _,NG_STEP,3, _,H_GRADIENT, _,N_COLOR,(int)C'255,255,255',
//----------------------------------------------------------------------------------
END_GROUP,
//----------------------------------
i, AT, _X2X, "MF", 1, _Y2H, "T4", 5,
//----------------------------------

//----------------------------------------------------------------------------------
GROUP, A,
//----------------------------------------------------------------------------------
__, BOARD,"Open money managment settings", _,POINTED,1,
                                          //----------------------------------
                                          _,text, N_COLOR,(int)C'42,42,247',
                                          //----------------------------------
                                          _,text, P_COLOR,(int)clrRed, 
                                          //----------------------------------
                                          _,P_COLOR,(int)C'240,240,240',
                                          //----------------------------------
                                          _,text,NP_TEXT_STYLE,FONT_UNDERLINE,
//----------------------------------------------------------------------------------
END_GROUP,
//----------------------------------
i, AT, _X2X, "H1", 5, _Y2H, "H1", 7,
//----------------------------------

//----------------------------------------------------------------------------------------------------
END_WINDOW,
 

了解色彩理论后,您可以继续学习,例如,将此作为一个测试布局,并将其转换为高级布局:

https:// www.mql5.com/ru/articles/1612

Изучаем класс CCanvas. Сглаживание и тени
Изучаем класс CCanvas. Сглаживание и тени
  • www.mql5.com
Алгоритм сглаживания класса CCanvas — основа всех построений, в которых используется сглаживание. В статье рассказано о том, как работает этот алгоритм, приведены примеры визуализации его работы. Кроме того, рассмотрено рисование теней графических объектов и разработан подробный алгоритм отрисовки тени на канвасе. Для расчетов применена библиотека численного анализа ALGLIB.
 


//------------------------------------------------------ 
//DECLARE A NEW WINDOW
//------------------------------------------------------ 
NEW_WINDOW,  
//------------------------------------------------------
/*SET WINDOW TYPE*/             W_TYPE, DIALOG,  
//------------------------------------------------------
/*WRITE WINDOW'S NAME*/         W_NAME, "Allow changes",
//------------------------------------------------------
/*SET WINDOW'S CAPTION*/        CAPTION, "User permission",
//------------------------------------------------------
/*NAME (CAPTION)IN THE MIDDLE*/ NIM,  
//------------------------------------------------------
/*POINT TO WINDOW'S ICON*/      W_ICON, "::Images\\16x16\\Warning.bmp",   
//------------------------------------------------------
/*ONLY CLOSING BUTTON*/         ONLY_CLOSING, 
//------------------------------------------------------
/*WINDOW ALWAYS ON TOP*/        ALWAYS_ON_TOP, 
//------------------------------------------------------
/*OPEN WINDOW WITH A SOUND*/    OPENING_SOUND,"::Sounds\\Windows Notify System Generic.wav", 
//------------------------------------------------------ 
/*WINDOW OPENS AT START*/       OPEN_ON_INIT,  /*(OOI)*/
//------------------------------------------------------
/*LOCK WINDOWS IF OPENED*/      //LOCKS_WINDOWS, ALL_WINDOWS,   
//------------------------------------------------------
/*MARGINS OF THE WINDOW*/       MARGINS, 11,15,/*Х, Y*/
//------------------------------------------------------

//----------------------------------------------------------------------------------
GROUP, A,
//----------------------------------------------------------------------------------
__, T_BOX,  "T1",TEXT,
                 //----------------------------------------------
                 "An expert needs your permission to continue.",
                 "Do You allow to make changes to the strategy?", 
                 //----------------------------------------------
                 END,
//----------------------------------------------------------------------------------                 
__, T_BOX,  "T2",TEXT,
                 //----------------------------------------------
                 "Strategy name:", 
                 "Expert's name:",
                 //----------------------------------------------
                 END,
//----------------------------------------------------------------------------------                 
END_GROUP,
//----------------------------------------------
i, AT, _X2X, "MF",   1, _Y2Y, "MF", 1,
//----------------------------------------------
"T1",_A3_,0,
//--------------
"T1",W,350,
//--------------
"T1",H,42,
//--------------
"T1",text,_C1_,55,
//--------------
"T1",text,_C2_,4,
//--------------
"T1",text,N_COLOR,(int)clrWhite,
//--------------
"T1",FONT_SIZE,10,
//--------------
"T1",NG_LINES,75,
//-------------- 
"T1",NG_STEP,1,
//--------------
"T1",H_GRADIENT,
//--------------
"T1",N_COLOR,(int)C'10,65,106',
//--------------
"T2",_A3_,0,
//--------------
"T2",W,350,
//--------------
"T2",H,42,
//--------------
"T2",text,_C1_,85,
//--------------
"T2",text,_C2_,7,
//--------------
//---------------------------------------------------------------------------------- 

//---------------------------------------------------------------------------------- 
GROUP, A,
//---------------------------------------------------------------------------------- 
__, T_BOX,  "T3",TEXT,
                 //----------------------------------------------
                 "'My best strategy'", 
                 //----------------------------------------------
                 END,
 GAP,20, 
//----------------------------------------------------------------------------------                  
__, T_BOX,  "T4",TEXT,
                 //----------------------------------------------
                 "Market explorer",
                 //----------------------------------------------
                 END,
//----------------------------------------------------------------------------------                  
END_GROUP,
//----------------------------------------------
i, AT, _X2X, "MF", 210, _Y2Y, "T2", 5,
//----------------------------------------------
"T3",TEXT_STYLE,(int)FONT_ITALIC,
//----------------------------------------------
"T4",TEXT_STYLE,(int)FW_BOLD,
//----------------------------------------------

//----------------------------------------------------------------------------------
GROUP, A,
//----------------------------------------------------------------------------------
__, LABEL,A, ADAPT_2_GRADIENT,"T1", _,N_LABEL,"::Images\\32x32\\Index.bmp", 
//----------------------------------------------------------------------------------
END_GROUP,
//----------------------------------------------
i, AT, _X2X, "MF", 10, _Y2Y, "T1", 5,
//----------------------------------------------

//----------------------------------------------------------------------------------

//----------------------------------------------------------------------------------
GROUP, A,
//----------------------------------------------------------------------------------
__, LABEL, A, N_COLOR,(int)clrWhite, _,N_LABEL, "::Images\\32x32\\Attach.bmp",  
//----------------------------------------------------------------------------------
END_GROUP,
//----------------------------------------------
i, AT, _X2X, "MF", 30, _Y2Y, "T2", 5,
//----------------------------------------------------------------------------------


//----------------------------------------------------------------------------------
GROUP, A,
//----------------------------------------------------------------------------------
__,CHECKBOX, "More details", A_TEXT,"Less details", 
//----------------------------------------------
   GAP,107, 
//----------------------------------------------  
   D_BUTTON, "Yes", CWIP, _,N_FRAME_COLOR, (int)C'51,153,255', 
//----------------------------------------------  
   GAP,7, 
//----------------------------------------------   
   D_BUTTON, "No", CWIP, 
//----------------------------------------------   
   BREAK_ROW_LINE,
//----------------------------------------------
END_GROUP,
//----------------------------------------------
i, AT, _X2X, "MF", 10, _Y2H, "T2", 20,
//----------------------------------------------
 
//----------------------------------------------------------------------------------
GROUP, A,

__, T_BOX,  "T5",TEXT,
                 //----------------------------------------------
                 "Current strategy based on 3 signals from indicators:", 
                 "Moving average, Parabolic SAR and RCI.",
                 //----------------------------------------------
                 END,
                
END_GROUP,
//----------------------------------------------
i, AT, _X2X, "MF",   4, _Y2H, "More details", 7,
//----------------------------------------------
"T5",_A3_,0,
//--------------
"T5", W,342,
//--------------
"T5", H,62,
//--------------
"T5",text,_C1_,10,
//--------------
"T5",text,_C2_,4,
//--------------
"T5",N_FRAME,1,
//--------------
"T5", TEXT_FONT, "Times New Roman",
//--------------
"T5", FONT_SIZE, 12,
//--------------
"T5", text, N_COLOR, (uint)clrRed,
//----------------------------------------------------------------------------------
GROUP, A,
//----------------------------------------------------------------------------------
__, H_LINE,"H1", W,344,
//----------------------------------------------------------------------------------
END_GROUP,
//----------------------------------------------
i, AT, _X2X, "MF", 4, _Y2H, "T5", 5,
//----------------------------------------------

//----------------------------------------------------------------------------------
GROUP, A,
//----------------------------------------------------------------------------------
__, BOARD,"Set up appearance of these messages", 
//----------------------------------------------------------------------------------          
                      _,POINTED,1,
                      //----------------------------------------------
                      _,FONT_SIZE,8,
                      //----------------------------------------------
                      _,text, N_COLOR,(int)C'42,42,247',
                      //----------------------------------------------
                      _,text,NP_TEXT_STYLE,FONT_UNDERLINE,
                      //----------------------------------------------
                      _,text, P_COLOR,(int)clrRed,
                      //----------------------------------------------
                      _,P_COLOR,(int)C'240,240,240',  
//----------------------------------------------------------------------------------
END_GROUP,
//----------------------------------------------
i, AT, _W2W, "H1", -3, _Y2H, "H1", 7,
//----------------------------------------------

//----------------------------------------------------------------------------------------------------
END_WINDOW,
 
用户如何添加自己寻找的图片,并在创建gui中使用?这是一个问题。
 
hini #:
用户如何添加所需的图片并使用它们创建界面?这就是问题所在。

界面图片(图标或其他图片)大致分为两类:

1.内部图片。

内部图片与设计器融为一体。例如,滚动按钮上的图片、菜单项的箭头、窗口关闭按钮的十字等。这些都是标准图片,在数组中用数字表示。标签菜单窗口中也有图标。它们以数字形式写入一个特殊数组。即使没有外部资源(包含图片的文件夹),这些图像也会保留下来,用户可以以同样的方式使用它们。在这种情况下,图标的地址就是构造函数找到它的名称。


2.外部图标。

所有外部图片必须位于 Images 文件夹中。构造函数会将它们作为资源加载,并记录在常用的图像数组中。然后,算法会将这些图像作为内部图像访问。当用户保存项目时,算法只选择用户界面需要的图片并写入 UIDATA 文件。


基本上,这很简单。

1.用户将所需图片放入 Images 文件夹。

2.2. 在一个特殊文件中写入一行(例如)#resource "::Images\/32x32\Index.bmp".

3.然后在代码中指定:

//----------------------------------------------------------------------------------
GROUP, A,
//----------------------------------------------------------------------------------
__, LABEL,A,  N_LABEL,"::Images\\32x32\\Index.bmp", 
//----------------------------------------------------------------------------------
END_GROUP,
//----------------------------------------------
i, AT, _X2X, "MF", 10, _Y2Y, "T1", 5,
//----------------------------------------------
//----------------------------------------------------------------------------------


完成。


用户只需为元素或窗口使用正常的图片分配字符串。无需其他任何操作。构造函数本身将确定图片是外部的还是内部的。如果是外部图片,它将从资源中取出,与其他图片一起放入数组。

 

周六发布(我会尽量早点)。

分配的任务

1.从用户应用程序端对元素 和窗口进行软件控制。

2. 提供使用表格的基本功能。

3 修复选项卡和任务栏的错误。

修复次要错误。