程序库: 用于创建图形界面的 EasyAndFastGUI 开发库 - 页 7

 
Anatoli Kazharski:

我的资料库已经与网站上公布的有很大不同。

是否接受更改资料库的建议?:)

 
Oleksii Chepurnyi:

是否接受更改图书馆的建议?:)

至少我们一直在考虑这些建议。

 

MQ5 文件。

不是 mqh 文件,您不必编译这些文件。

 
Anatoli Kazharski:

至少一直在考虑。

我想先问一下,也许是我还没找到:)例如,在标签中,除了居中对齐外,还有其他文本对齐方式吗?是否可以设置文本样式、粗体、斜体等?
 
Oleksii Chepurnyi:
我想先问一下,也许我只是还没找到:)例如,在标签中,除了居中之外,还有其他文本对齐方式吗?有没有设置文本样式、粗体、斜体等的选项?

目前只有这样的选项:

//--- 字体属性
   m_canvas.FontSet(m_font,-m_font_size*10,FW_NORMAL);
//--- 绘制文本时考虑居中对齐模式
   if(m_is_center_text)
     {
      x =m_x_size>>1;
      y =m_y_size>>1;
      m_canvas.TextOut(x,y,m_label_text,::ColorToARGB(clr),TA_CENTER|TA_VCENTER);
     }
   else
      m_canvas.TextOut(x,y,m_label_text,::ColorToARGB(clr),TA_LEFT);
 
Anatoli Kazharski:

目前仅此而已:

那么第一句话。

Enums.mqh.

//+------------------------------------------------------------------+
//| 文本对齐|
//+------------------------------------------------------------------+
enum ENUM_TEXT_ALIGN
  {
   AT_LEFT_TOP,
   AT_CENTER_TOP,
   AT_RIGHT_TOP,
   AT_LEFT_CENTER,
   AT_CENTER_CENTER,
   AT_RIGHT_CENTER,
   AT_LEFT_BOTTOM,
   AT_CENTER_BOTTOM,
   AT_RIGHT_BOTTOM,
  };

Element.mqh

protected:
   ENUM_TEXT_ALIGN   m_text_align;
   int               m_hor_space;
   int               m_ver_space;
public:
   void              SetTextAlign(const ENUM_TEXT_ALIGN align, const int hspace, const int vspace) { m_text_align=align; m_hor_space=hspace; m_ver_space=vspace; }
   if(m_is_center_text)
     {
      x =m_x_size>>1;
      y =m_y_size>>1;
      m_canvas.TextOut(x,y,m_label_text,::ColorToARGB(clr),TA_CENTER|TA_VCENTER);
     }
   else
     {
      switch(m_text_align)
        {
         case 0: m_canvas.TextOut(x+m_hor_space,         y+m_ver_space,         m_label_text,::ColorToARGB(clr),TA_LEFT|TA_TOP);       break;  // AT_LEFT_TOP
         case 1: m_canvas.TextOut((int)round(m_x_size/2),y+m_ver_space,         m_label_text,::ColorToARGB(clr),TA_CENTER|TA_TOP);     break;  // at_center_top
         case 2: m_canvas.TextOut(m_x_size-m_hor_space,  y+m_ver_space,         m_label_text,::ColorToARGB(clr),TA_RIGHT|TA_TOP);      break;  // 右上方
         case 3: m_canvas.TextOut(x+m_hor_space,         (int)round(m_y_size/2),m_label_text,::ColorToARGB(clr),TA_LEFT|TA_VCENTER);   break;  // 在左中心
         case 4: m_canvas.TextOut(m_x_size>>1,           m_y_size>>1,           m_label_text,::ColorToARGB(clr),TA_CENTER|TA_VCENTER); break;  // at_center_center
         case 5: m_canvas.TextOut(m_x_size-m_hor_space,  (int)round(m_y_size/2),m_label_text,::ColorToARGB(clr),TA_RIGHT|TA_VCENTER);  break;  // at_right_center
         case 6: m_canvas.TextOut(x+m_hor_space,         m_y_size-m_ver_space,  m_label_text,::ColorToARGB(clr),TA_LEFT|TA_BOTTOM);    break;  // 左下角
         case 7: m_canvas.TextOut((int)round(m_x_size/2),m_y_size-m_ver_space,  m_label_text,::ColorToARGB(clr),TA_CENTER|TA_BOTTOM);  break;  // at_center_bottom
         case 8: m_canvas.TextOut(m_x_size-m_hor_space,  m_y_size-m_ver_space,  m_label_text,::ColorToARGB(clr),TA_RIGHT|TA_BOTTOM);   break;  // at_right_bottom
         default: m_canvas.TextOut(x,y,m_label_text,::ColorToARGB(clr),TA_LEFT); break;
        }
     }

还没做样式。

 
Oleksii Chepurnyi:

然后是第一个建议。

然后是第二个建议:制作一个具有拖放功能的图形用户界面编辑器

 
Igor Makanu:

第二个建议:制作一个具有拖放功能的图形用户界面编辑器

好建议)

有了风格就更容易了。

protected:
   uint              m_font_style;
public:
   void              FontStyle(const int font_style)                 { m_font_style=font_style;         }

//--- 字体属性
   m_canvas.FontSet(m_font,-m_font_size*10,m_font_style);
 
Oleksii Chepurnyi:

第一个建议是

还没做样式。

也许我会在下次更新时加入。

Igor Makanu:

第二个建议:制作一个具有拖放功能的图形用户界面编辑器。

我不能保证。我会尽量抽时间做的。

 
Anatoli Kazharski:

我不能保证我会尽量抽时间的

嗯,还以为你会拒绝,没想到你来了......酷!