文章 "图形界面 X: 在多行文本框中选择文本 (集成构建 13)" - 页 12 1...5678910111213141516 新评论 Konstantin 2017.05.04 08:30 #111 在执行动态添加/删除选项卡以及向选项卡数组添加/删除图表的任务时,我遇到了无法在CTabs 类中获取选项卡名称的问题。为此,我建议开发人员在该类中添加一个获取选项卡名称的方法: //---将 (1) 文本(选项卡名称)设置为指定的索引 (2) получает текст (имя вкладки) по указанному индексу void Text(const uint index,const string text); // 这种方法是 string Text(const uint index) { return m_tab[index].text; } // 这还不够 添加该方法是必要的,因为即使继承自CTabs 类以补充缺失的方法,也无法实现重载的 Text 方法,因为m_tab[] 对象位于类的保护区中。而且,根据自己的需要编辑类也违反了 OOP 原则。 Anatoli Kazharski 2017.05.04 10:01 #112 Konstantin:... 我将按照您在之前的文章中所写的去做。 Konstantin 2017.05.04 10:39 #113 在EasyAndFastGUI/MQL5/Images/EasyAndFastGUI/Icons/bmp16 库中添加图像。对于 "两条腿 "的套利者来说,这不仅对我有用 )) 附加的文件: EasyAndFastGUI.zip 2 kb Pavel Kolchin 2017.05.08 20:41 #114 Anatoli Kazharski: @Pavel Kolchin,使用CWndEvents::ResetWindow() 方法可防止交易箭头悬挂在面板上方。 在哪里插入? Anatoli Kazharski 2017.05.08 20:47 #115 Pavel Kolchin: 放在哪里? 试试OnTrade()。 Pavel Kolchin 2017.05.08 21:15 #116 Anatoli Kazharski: 试试OnTrade()。 不行,失败了。菜单文件中没有此类事件,但如果将其插入主文件,则会失败。 Anatoli Kazharski 2017.05.08 21:40 #117 Pavel Kolchin: 不行,失败了菜单文件中没有此类事件,但如果将其粘贴到主文件中,则会失败。您需要在自定义应用程序类中创建CProgram::OnTradeEvent() 方法。在主文件中,应在OnTrade() 函数中调用该方法://+------------------------------------------------------------------+ //| 贸易功能| //+------------------------------------------------------------------+ void OnTrade(void) { program.OnTradeEvent(); }//---例如,CProgram::OnTradeEvent() 方法的内容如下://+------------------------------------------------------------------+ //| 贸易交易事件| //+------------------------------------------------------------------+ void CProgram::OnTradeEvent(void) { //-- 向所有图表发送交易事件 m_events.SendEventToAllCharts(0,ON_TRADE_EVENT,0,0.0,m_program_name); //--- 设置最后一个位置的交易 if(m_show_deals.CheckButtonState()) if(m_vdeals.ShowDealsLastPosition()) ResetWindow(); //--- 检查止损距离 if(m_trailing_stop.CheckButtonState()) m_ctrade.CheckStopLossSize(::Symbol()); //-- 为贸易操作进行变量清零 m_ctrade.ZeroCalcPositionVariables(); //-- 初始化余额数组并更新图表上的序列 InitBalanceArray(); m_line_chart.SeriesUpdate(0,m_balance_data,"Balance",clrCornflowerBlue); } Pavel Kolchin 2017.05.08 22:05 #118 Anatoli Kazharski: 在上面再加一点public: //--- 贸易 void OnTradeEvent(void); 然后一切正常 ) Konstantin 2017.05.10 04:51 #119 我不知道如何将元素_2(如表格)绑定到元素_1(如同一张表格)的下边缘,即元素_1 位于元素_2 的上方。因此,当图表的尺寸发生变化时,元素_1 的下边界会发生移动,而元素_2 的上边界 会随之移动。库中有AutoYResizeMode 和AutoYResizeBottomOffset 方法,但我不知道如何实现上边界的位移。 Anatoli Kazharski 2017.05.10 11:07 #120 Konstantin: 我不知道如何将元素_2(如表格)绑定到元素_1(如同一张表格)的下边缘,即元素_1 位于元素_2 的上方。因此,当图表的大小发生变化时,元素_1 的下边界会发生移动,而元素_2 的上边界 会随之移动。库中有AutoYResizeMode 和AutoYResizeBottomOffset 方法,但我不知道如何实现上边界的位移。此外,还有用于绑定元素的方法: //--- 将元素绑定到(1)窗口右边和(2)窗口底边的模式(获取/设置 bool AnchorRightWindowSide(void) const { return(m_anchor_right_window_side); } void AnchorRightWindowSide(const bool flag) { m_anchor_right_window_side=flag; } bool AnchorBottomWindowSide(void) const { return(m_anchor_bottom_window_side); } void AnchorBottomWindowSide(const bool flag) { m_anchor_bottom_window_side=flag; }//---请尝试结合这些属性解决问题。 1...5678910111213141516 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
在执行动态添加/删除选项卡以及向选项卡数组添加/删除图表的任务时,我遇到了无法在CTabs 类中获取选项卡名称的问题。为此,我建议开发人员在该类中添加一个获取选项卡名称的方法:
添加该方法是必要的,因为即使继承自CTabs 类以补充缺失的方法,也无法实现重载的 Text 方法,因为m_tab[] 对象位于类的保护区中。而且,根据自己的需要编辑类也违反了 OOP 原则。...
@Pavel Kolchin,使用CWndEvents::ResetWindow() 方法可防止交易箭头悬挂在面板上方。
放在哪里?
试试OnTrade()。
不行,失败了。
菜单文件中没有此类事件,但如果将其插入主文件,则会失败。
不行,失败了
菜单文件中没有此类事件,但如果将其粘贴到主文件中,则会失败。
您需要在自定义应用程序类中创建CProgram::OnTradeEvent() 方法。
在主文件中,应在OnTrade() 函数中调用该方法:
//---
例如,CProgram::OnTradeEvent() 方法的内容如下:
我不知道如何将元素_2(如表格)绑定到元素_1(如同一张表格)的下边缘,即元素_1 位于元素_2 的上方。因此,当图表的大小发生变化时,元素_1 的下边界会发生移动,而元素_2 的上边界 会随之移动。库中有AutoYResizeMode 和AutoYResizeBottomOffset 方法,但我不知道如何实现上边界的位移。
此外,还有用于绑定元素的方法:
//---
请尝试结合这些属性解决问题。