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

 
Alexander Fedosov:

重新编译程序库时,提示未找到该类

类'CWindow'未定义 Element.mqh

从主程序文件 (*.mq5) 中编译项目

 


请问,高DPI下,面板都乱了,如何解决?

 
这是一个非常不错的库,您可以利用它创建一个表格,通过用户根据数据分析制定的逻辑,在ontick或ontime事件中显示市场数据。 在我的示例中,唯一缺少的就是加入一个编辑对象,让您可以输入您想在市场中执行的订单数量。在表格中显示市场数据
 
您能告诉我,如何在 TextEdit的输入栏中 使右边对齐吗?在 SpinEdit 的早期版本中可以对齐,但在 TextEdit 中却没有这种可能性。
 
lovaK:
您能告诉我,如何在 TextEdit的输入栏中 使右边对齐吗?在 SpinEdit 的早期版本中,有对齐的可能性,但在 TextEdit 中却没有这种可能性。

任何文本都是使用 CElement::DrawText(void) 方法绘制的,它只有左侧或中央两种对齐方式。

必须自己添加。像这样

   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:

你必须自己写。像这样

谢谢,我在第 7 页看到了你的这段代码,当时就选中了它。问题是,您添加的代码可以完美地对齐文本,例如,在字段组合框中,但在输入 字段 TextEdit 中,文本并不能通过这种方法对齐,而是保持在左边缘对齐。
 
lovaK:
谢谢,我在第 7 页看到了这段代码,当时就用上了。问题是,使用您的附加组件后,文本可以很好地对齐,例如在组合框字段中,但在 TextEdit输入 字段中,文本并没有使用这种方法对齐,而是一直对齐到左侧边缘。

是的,TextEdit 不必对齐:)

文本本身绘制 TextBox (m_edit),应该旋转。文本有自己的绘制方法,据我所知,文本是以符号方式绘制的。

我首先想到的是在 CTextBox::TextOut(void) 中改变 x 坐标:)

 

该库的新版本已经发布。

有关新增内容的更多信息,请参阅这篇文章:ZigZag 全靠头脑(第二部分)。数据采集、处理和显示示例

请参阅 "智能交易系统 " 部分,了解如何收集和显示统计数据

 

我一直在想还缺什么。这些就是模板)太棒了!

看了一眼,我有个问题:为什么我们不能去掉参数中的 window_index?我们有一个指向主元素的指针,让它表示窗口索引:)

 
Oleksii Chepurnyi:

...

看了一眼,有一个问题:为什么不能在参数中去掉 window_index?我的意思是,我们有一个指向主元素的指针,让它表示窗口索引:)

我不记得为什么了。我们应该再试一次。