文章 "图形界面 XI: 渲染控件 (统合构建14.2)" - 页 4

 
Facundo Laje:
谢谢
 
zlory73:

对不起,已修改:

还是什么都没有...

请帮助1


您好、

我使用 OpenWindow() 函数而不是 Show() 函数解决了这些问题,现在我也激活了折叠按钮。

现在我想在窗口 2 和窗口 3 中添加一些控件,如按钮和复选框,但却出现了如下图所示的错误:

我不太在意读取图片的错误...只有指针访问错误:

CWndContainer::AddToElementsArray(1,m_checkbox1);

我想 window_index 的值应该是:main 为 0,window2 为 1,window3 为 2,对吗?

使用以前的一个库(article06)向子窗口添加控件时没有问题。

现在需要添加控件的代码:

//------------------CheckBox---------------
  bool CmyPanel_Test2::CreateCheckBox1(const int x_gap,const int y_gap,string text)
  {
//--- 存储指向主控制的指针
   m_checkbox1.MainPointer(m_window2);
//--- 创建前设置属性
   m_checkbox1.XSize(40);
   m_checkbox1.YSize(20);
   m_checkbox1.IsPressed(false);

//--- 创建一个控件
   if(!m_checkbox1.CreateCheckBox("box1",x_gap,y_gap))
      return(false);
//--- 将对象添加到对象组的通用数组中
    CWndContainer::AddToElementsArray(1,m_checkbox1);
   return(true);
  }
//---------------Button---------- 
  bool CmyPanel_Test2::CreateIconButton1(const int x_gap,const int y_gap,const string text)
  {
//--- 存储指向主控制的指针
   m_icon_button1.MainPointer(m_window2);
//--- 属性
   m_icon_button1.XSize(115);
   m_icon_button1.YSize(22);
   m_icon_button1.IconXGap(3);
   m_icon_button1.IconYGap(3);
   m_icon_button1.TwoState(true);
   m_icon_button1.IconFile("Images\\EasyAndFastGUI\\Icons\\bmp16\\stop.bmp");
   m_icon_button1.IconFileLocked("Images\\EasyAndFastGUI\\Icons\\bmp16\\stop_gray.bmp");
   m_icon_button1.IconFilePressed("Images\\EasyAndFastGUI\\Icons\\bmp16\\start.bmp");
   m_icon_button1.IconFilePressedLocked("Images\\EasyAndFastGUI\\Icons\\bmp16\\start_gray.bmp");
//--- 创建一个控件
   if(!m_icon_button1.CreateButton(text,x_gap,y_gap))
      return(false);
//--- 将指向控件的指针添加到基座中
   CWndContainer::AddToElementsArray(1,m_icon_button1);
   return(true);
  }

谁能帮帮我,谢谢


PS:我希望我的主题不会惹人讨厌。祝您愉快

 
加分析师327836497  收益率达到百分之74.5
 
Artur Zas:

您好,这套控件真的很不错,很有帮助,但如果能更好地处理更高的 DPI 设置就更好了。

显然,位图可以正确显示,但文本却不能。...


我想说的是,文本的缩放是正确的,而其他图形则不同。

 
Ex Ovo Omnia:

我想说的是,文字的比例是正确的,不像所有其他图形。


这取决于你如何看待它。你可以放大位图以匹配字体大小,也可以缩小字体大小以匹配位图大小。

放大位图并不是你真正想做的事,因为位图与矢量图形不同,放大后会降低质量。而字体是基于矢量的,因此可以放大或缩小而不会降低质量。

要解决这个问题,最简单的方法显然是使用矢量图形,但我认为该平台不支持这种方法(不过我可能弄错了,因为我并不真正在 metatrader 中处理图形)。

我个人会按比例缩小字体,以匹配 DPI。

总之,如果控件能默认处理这个问题就好了,这样我们就不用担心了。

 
Artur Zas:

这取决于你如何看待它。您可以放大位图以匹配字体大小,也可以缩小字体大小以匹配位图大小。

放大位图并不是你真正想做的事,因为位图与矢量图形不同,放大后会降低质量。而字体是基于矢量的,因此可以放大或缩小而不会降低质量。

要解决这个问题,最简单的方法显然是使用矢量图形,但我认为该平台不支持这种方法(不过我可能弄错了,因为我并不真正使用 metatrader 处理图形)。

我个人会按比例缩小字体,以匹配 DPI。

总之,如果控件能默认处理这个问题就好了,这样我们就不用担心了。


我并不反驳图片缩放的困难,我只是发现字体大小的变化与缩放后的 Metatrader 应用程序图形用户界面相对应。因此,如果减小字体大小,就会使字母在高分辨率显示器上变得非常小。

 
Ex Ovo Omnia:

我并不反驳图片缩放的困难,我只是发现字体大小的变化与缩放的 Metatrader 应用程序图形用户界面相对应。因此,如果减小字体大小,就会使字母在高分辨率显示器上变得非常小。

是的,我同意。让图形与字体大小相匹配会更好,因为字体大小确实与按比例放大的 MT5 图形用户界面相匹配。我只是在寻找一种方法,让字体大小 与图形的其他部分相匹配,这样看起来更美观。

我想,在光栅和矢量图形混合的环境中,这已经是最好的办法了。

 

您好,很高兴能看到您的开发作品,我发现有一个问题,请您有时间给解释下,问题:  树形控件,如何增加成tab类型,我设置成tab模式后不能工作。无法获取到增加到tab的元件。 谢谢!期待您的留言。

 

在第10版本可以做出来为什么14-2 就不能显示了呢?

 

你好,新版本的控件编辑输出部分,键盘的右侧数字小键盘失灵,输入数字没有反应,只能在左侧数字输入,请处理一下