文章 "如何创建任意复杂度的图形面板" - 页 9 1234567891011121314 新评论 Renat Akhtyamov 2020.12.07 10:41 #81 Vasiliy Pushkaryov: 我还没遇到过。我也不知道。Stanislav 在本主题的第 27 个帖子中回答了其中一个问题。 应用 Visible() 方法按我的需要呼吸当然,还要感谢 MQ 的 MQL。 嗯,一切都可以实现,任何幻想都可以;) Johann Kern 2020.12.30 11:04 #82 你们好 我对你们俩真是感激不尽。我经常在这里偶然发现一些绝对垃圾的程序代码,多亏了你们的批评,我才省去了很多时间去寻找这类程序的含义。 是否有翻译成德语的完整 MQL 语法的合理说明? Die Ersetzung des CWndContainer www.mql5.com Diese Datei ersetzt die originale Datei WndContainer.mqh. Er verhindert die Veränderung des Charts beim Druck und bei der Haltung der Maus-Taste innerhalb im Bereichs des Containers. Carl Schreiber 2020.12.30 12:08 #83 Joosy:你们好我对你们俩真是感激不尽。我经常在这里偶然发现一些绝对垃圾的程序代码,多亏了你们的批评,我才省去了很多时间去寻找这类程序的含义。 是否有翻译成德语的完整 MQL 语法的合理说明? https://www.mql5.com/files/pdf/mql5_german.pdf https://www.mql5.com/zh/docs/function_indices 这是一个列表,您可以根据座右铭 "名字是什么来着...... "使用 Ctrl+F 搜索其中的关键词。 在编辑器中,您可以将鼠标放在一个 MQL5 函数上,然后按 F1 键直接进入该函数的文档,其中一些还附有示例... Johann Kern 2020.12.30 18:32 #84 Carl Schreiber: https://www.mql5.com/files/pdf/mql5_german.pdf https://www.mql5.com/zh/docs/function_indices 这是一个列表,您可以根据座右铭使用 Ctrl+F 搜索关键字,名称是什么来着... 在编辑器中,您可以将鼠标放在一个 MQL5 函数上,然后按 F1 键直接进入该函数的文档,其中一些还附有示例... 基本上,我知道这些文档。不过,您提供的概览显示链接再次启发了我。从这个角度来看,这是一种不同的方法。 谢谢! amando 2020.12.30 18:44 #85 Joosy: 基本上,我知道文档。不过,您提供的概览显示链接再次启发了我。从这个角度来看,这是一种不同的方法。谢谢! 我也试过面板,但对我来说并不适用,因为它总是在图表窗口中。 现在,我把整个面板都放在了指标窗口 中,而指标窗口 始终位于图表的底部。 sled 2021.01.15 08:55 #86 MetaQuotes:已发布文章如何创建任何复杂程度的图形面板及其工作原理:作者:弗拉基米尔-卡尔普托夫 是的,要创建一个面板,您需要了解几十行代码,然后再制作几十行甚至更多....。本来以为功能已经实现,可以选择或启用(Enable),但是--没有!!!! 恕我直言,我没有看到从简单到复杂的过程。 我要画出正方形,并将它们包裹在我的包装器中。 PS:文章文件最好单独发布 - 可在浏览器中查看。 [删除] 2021.01.28 00:18 #87 你好,弗拉基米尔、 非常感谢你的文章,它对我很有帮助。 我只是想知道关于更改 m_client_area 和m_background 对象颜色的 某些部分: int total=AppWindow.ControlsTotal(); CWndClient*myclient; for(int i=0;i<total;i++) { CWnd*obj=AppWindow.Control(i); string name=obj.Name(); PrintFormat("%d is %s",i,name); //--- 颜色 if(StringFind(name,"Client")>0) { CWndClient *client=(CWndClient*)obj; client.ColorBackground(clrRed); myclient=client; Print("client.ColorBackground(clrRed);"); ChartRedraw(); } //--- if(StringFind(name,"Back")>0) { CPanel *panel=(CPanel*) obj; panel.ColorBackground(clrGreen); Print("panel.ColorBackground(clrGreen);"); ChartRedraw(); } } 突出显示的部分就是我不确定的地方。我不确定下面的两段代码: 1.Is it accessing aControl file like WndClient.mqh and what is the * for. CWndClient *client=(CWndClient*)obj; 2.我的另一个问题是,如下所示,obj 和 Name(); 分别是什么。 我知道 obj 可能是一个对象,name 部分是对象的名称。 但是,如果我将 obj.Name(); 放到其他代码中,它就无法理解,所以我知道它与上面的代码是唯一的。 我只是不确定它是如何匹配的。 obj.Name(); 如果您有时间回答我的问题,我将不胜感激,并提前向您表示感谢。 Vladimir Karputov 2021.01.29 05:12 #88 ctrading :***2.我的另一个问题是什么是 obj 和 Name();,如下图所示。 我知道 obj 可能是一个对象,name 部分是对象的名称。 但是,如果我把 obj.Name(); 放到任何其他代码中,它都无法理解,所以我知道它与上面的东西是唯一的。 我只是不确定它是如何匹配的。obj.Name();*** obj 变量只存在于for 循环的一次迭代中。 Guilherme Mendonca 2021.03.01 19:14 #89 非常感谢你的文章! 我是一名初学者,正在尝试创建一个更复杂的面板。 在类头创建 CLabel 和 CButton 时,我遇到了一些困难。 因为我会用到很多具有相同文本的标签,例如 "破折号"。 我想找到某种循环或数组来在类头(私有)中创建大量标签: class CTradePanel : public CAppDialog { private: CLabel dashs[100]; //在面板上创建大量的仪表盘 } 我怎样才能在数组中填入 "标签"? 我的想法是,然后调用下面的某个函数: for(int i=0 ; i<100 ; i++) { string dash_name = "dash_"+IntegerToString(i); if(!CreateLabel(chart,subwin,dash_name,"-",5*i,5*i)) { return false; } } 但是,它会返回错误:"'dash_name'--不允许参数转换"。 那么,我怎样才能用 "CLabel "填充数组,然后在for 循环函数中使用这些 "labels "呢? 有人能帮我吗? Vladimir Karputov 2021.03.02 04:13 #90 Guilherme Mendonca :非常感谢你的文章!我是一名初学编程者,正在尝试创建一个更复杂的面板。在类头创建 CLabel 和 CButton 时,我遇到了一些困难。因为我会用到很多具有相同文本的标签,例如 "破折号"。我想找到某种循环或数组来在类头(私有)中创建大量标签:如何在数组中填入 "标签"?我的想法是,然后调用下面的函数:但是,它会返回错误:"'dash_name'--参数转换不允许"那么,我怎样才能用"CLabel "填充数组,然后在循环函数中使用这些 "标签 "呢?有没有人可以帮我? 您需要连接CArrayObj 类。并按照帮助中的示例进行操作。 Documentation on MQL5: Standard Library / Data Collections / CArrayObj www.mql5.com CArrayObj - Data Collections - Standard Library - MQL5 Reference - Reference on algorithmic/automated trading language for MetaTrader 5 1234567891011121314 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我还没遇到过。我也不知道。Stanislav 在本主题的第 27 个帖子中回答了其中一个问题。
应用 Visible() 方法
按我的需要呼吸
当然,还要感谢 MQ 的 MQL。
嗯,一切都可以实现,任何幻想都可以;)你们好
我对你们俩真是感激不尽。我经常在这里偶然发现一些绝对垃圾的程序代码,多亏了你们的批评,我才省去了很多时间去寻找这类程序的含义。
是否有翻译成德语的完整 MQL 语法的合理说明?
你们好
我对你们俩真是感激不尽。我经常在这里偶然发现一些绝对垃圾的程序代码,多亏了你们的批评,我才省去了很多时间去寻找这类程序的含义。
是否有翻译成德语的完整 MQL 语法的合理说明?
这是一个列表,您可以根据座右铭 "名字是什么来着...... "使用 Ctrl+F 搜索其中的关键词。
这是一个列表,您可以根据座右铭使用 Ctrl+F 搜索关键字,名称是什么来着...
谢谢!
基本上,我知道文档。不过,您提供的概览显示链接再次启发了我。从这个角度来看,这是一种不同的方法。谢谢!
我也试过面板,但对我来说并不适用,因为它总是在图表窗口中。
现在,我把整个面板都放在了指标窗口 中,而指标窗口 始终位于图表的底部。
已发布文章如何创建任何复杂程度的图形面板及其工作原理:
作者:弗拉基米尔-卡尔普托夫
是的,要创建一个面板,您需要了解几十行代码,然后再制作几十行甚至更多....。本来以为功能已经实现,可以选择或启用(Enable),但是--没有!!!!
恕我直言,我没有看到从简单到复杂的过程。 我要画出正方形,并将它们包裹在我的包装器中。
PS:文章文件最好单独发布 - 可在浏览器中查看。
你好,弗拉基米尔、
非常感谢你的文章,它对我很有帮助。 我只是想知道关于更改 m_client_area 和m_background 对象颜色的 某些部分:
int total=AppWindow.ControlsTotal(); CWndClient*myclient; for(int i=0;i<total;i++) { CWnd*obj=AppWindow.Control(i); string name=obj.Name(); PrintFormat("%d is %s",i,name); //--- 颜色 if(StringFind(name,"Client")>0) { CWndClient *client=(CWndClient*)obj; client.ColorBackground(clrRed); myclient=client; Print("client.ColorBackground(clrRed);"); ChartRedraw(); } //--- if(StringFind(name,"Back")>0) { CPanel *panel=(CPanel*) obj; panel.ColorBackground(clrGreen); Print("panel.ColorBackground(clrGreen);"); ChartRedraw(); } }突出显示的部分就是我不确定的地方。我不确定下面的两段代码:
1.Is it accessing aControl file like WndClient.mqh and what is the * for.
CWndClient *client=(CWndClient*)obj;2.我的另一个问题是,如下所示,obj 和 Name(); 分别是什么。 我知道 obj 可能是一个对象,name 部分是对象的名称。 但是,如果我将 obj.Name(); 放到其他代码中,它就无法理解,所以我知道它与上面的代码是唯一的。 我只是不确定它是如何匹配的。
obj.Name();如果您有时间回答我的问题,我将不胜感激,并提前向您表示感谢。
***
2.我的另一个问题是什么是 obj 和 Name();,如下图所示。 我知道 obj 可能是一个对象,name 部分是对象的名称。 但是,如果我把 obj.Name(); 放到任何其他代码中,它都无法理解,所以我知道它与上面的东西是唯一的。 我只是不确定它是如何匹配的。
***
obj 变量只存在于for 循环的一次迭代中。
非常感谢你的文章!
我是一名初学者,正在尝试创建一个更复杂的面板。
在类头创建 CLabel 和 CButton 时,我遇到了一些困难。
因为我会用到很多具有相同文本的标签,例如 "破折号"。
我想找到某种循环或数组来在类头(私有)中创建大量标签:
我怎样才能在数组中填入 "标签"?
我的想法是,然后调用下面的某个函数:
但是,它会返回错误:"'dash_name'--不允许参数转换"。
那么,我怎样才能用 "CLabel "填充数组,然后在for 循环函数中使用这些 "labels "呢?
有人能帮我吗?
非常感谢你的文章!
我是一名初学编程者,正在尝试创建一个更复杂的面板。
在类头创建 CLabel 和 CButton 时,我遇到了一些困难。
因为我会用到很多具有相同文本的标签,例如 "破折号"。
我想找到某种循环或数组来在类头(私有)中创建大量标签:
如何在数组中填入 "标签"?
我的想法是,然后调用下面的函数:
但是,它会返回错误:"'dash_name'--参数转换不允许"
那么,我怎样才能用"CLabel "填充数组,然后在循环函数中使用这些 "标签 "呢?
有没有人可以帮我?
您需要连接CArrayObj 类。并按照帮助中的示例进行操作。