文章 "图形界面 X: 在多行文本框中选择文本 (集成构建 13)" - 页 13 1...678910111213141516 新评论 Konstantin 2017.05.10 12:12 #121 Anatoli Kazharski:还有更多绑定元素的方法://---结合这些属性,试着解决这个问题。 我知道 X(...) 和 Y(...) 方法将元素刚性绑定到 X 和 Y 坐标上,当接收改变主窗体窗口大小的事件时,它们不会以任何方式对 X 和 Y 坐标的位置做出反应。 Anatoli Kazharski 2017.05.10 12:23 #122 Konstantin: 我知道 X(...) 和 Y(...) 方法将元素刚性绑定到 X 和 Y 坐标上,当接收改变主窗体窗口大小的事件时,它们不会以任何方式对 X 和 Y 坐标的位置做出反应。您能否举一个现成的 Windows 应用程序的例子来说明您的需求?我不太明白您需要什么。或者用图形来描述一下。如果我理解正确的话,元素_2 应绑定到窗体的底边,而元素_1 应自动垂直调整大小,并缩进到元素_2 的高度。 Konstantin 2017.05.10 13:26 #123 Anatoli Kazharski:能否以现成的 Windows 应用程序为例,说明您的需求?我不太明白你需要什么。或者用图形来描述一下。如果我没理解错的话,元素_2 应绑定到表单的底边,而元素_1 应自动调整垂直大小,并缩进到元素_2 的高度。 你说得没错,也就是说,当窗口大小发生变化时,元素_1 的 Y 轴大小也会发生变化,而你需要元素_2 也跟着缩小,即表单内元素的正常缩放。到目前为止,我已经建立了一个拐杖,即元素_1 不会缩放 ))。我稍后会处理这个问题。 Konstantin 2017.05.17 15:52 #124 图库缺少显示优先级设置,因为来自开放顺序/位置的图标具有更高的优先级,因此会被放在图库所有图形元素的顶部,我认为在图库 "核心 "中创建图形对象 时可以实现这一点。 Anatoli Kazharski 2017.05.17 15:54 #125 Konstantin: 我认为可以通过在库的 "核心 "中创建图形对象 来实现。 试着这样做 交易、自动交易系统和交易策略测试论坛 讨论文章 "GUI X:多行输入框中的文本选择(第 13 版)"。 Anatoli Kazharski, 2017.05.08 21:40 在自定义应用程序类中,你需要创建一个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); } Konstantin 2017.05.17 16:01 #126 Anatoli Kazharski: 试试这样做:我见过这种方法,但我认为你需要在库的 "核心 "部分(即创建图形对象 时)补充这种用法:bool ObjectSetInteger( long chart_id, // 图表标识符 string name, // 名称 ENUM_OBJECT_PROPERTY_INTEGER prop_id, // 财产 long prop_value // 值 );属性OBJPROP_BACK Anatoli Kazharski 2017.05.17 16:05 #127 Konstantin:我见过这种情况,但我认为在库的 "核心 "部分,即创建图形对象 时,需要对用法进行补充:属性:OBJPROP_BACK然后,图形将覆盖界面的图形对象。//---现在先执行ResetWindow()。我稍后会尝试将其内置到内核中,以便自动更新。 Konstantin 2017.05.17 16:11 #128 Anatoli Kazharski:然后,图形将覆盖界面的图形对象。//---现在先用ResetWindow()。我稍后会尝试将其内置到内核中,以便自动更新。 不完全是这样,你需要把所有图形对象放在前台,然后图形会在后面,我已经在我的图形库 中实现过很多次了)) Anatoli Kazharski 2017.05.17 16:23 #129 Konstantin: 不完全是这样,你需要将所有图形对象优先置于前台,然后图形就会在后面,我已经在我的图形库中实现过很多次了 ))我不知道你做了什么,也不知道你是怎么做的,但默认情况下它们都在前台。最近创建的图表在最上面。创建后更改优先级的唯一方法是再次隐藏和显示对象,但应放在底部的对象除外。 Konstantin 2017.05.19 13:04 #130 在 CTabs.类的方法 中应突出显示一个检查数组是否为空的功能:void CTabs::CalculatingPatch(int &x,int &y,int &x_size,int &y_size) { if(ArraySize(m_tabs) == 0) return; if(m_position_mode==TABS_TOP) { x =m_tabs[m_selected_tab].X()+1; y =m_tabs[m_selected_tab].Y2()-1; x_size =m_tabs[m_selected_tab].XSize()-2; y_size =1; } else if(m_position_mode==TABS_BOTTOM) { x =m_tabs[m_selected_tab].X()+1; y =m_tabs[m_selected_tab].Y(); x_size =m_tabs[m_selected_tab].XSize()-2; y_size =1; } else if(m_position_mode==TABS_LEFT) { x =m_tabs[m_selected_tab].X2()-1; y =m_tabs[m_selected_tab].Y()+1; x_size =1; y_size =m_tabs[m_selected_tab].YSize()-2; } else if(m_position_mode==TABS_RIGHT) { x =m_tabs[m_selected_tab].X(); y =m_tabs[m_selected_tab].Y()+1; x_size =1; y_size =m_tabs[m_selected_tab].YSize()-2; } }中应添加高亮显示,这是对空数组的检查,因为如果没有该检查,在没有标签页的情况下,整个表单会出错崩溃。 1...678910111213141516 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
还有更多绑定元素的方法:
//---
结合这些属性,试着解决这个问题。
我知道 X(...) 和 Y(...) 方法将元素刚性绑定到 X 和 Y 坐标上,当接收改变主窗体窗口大小的事件时,它们不会以任何方式对 X 和 Y 坐标的位置做出反应。
我知道 X(...) 和 Y(...) 方法将元素刚性绑定到 X 和 Y 坐标上,当接收改变主窗体窗口大小的事件时,它们不会以任何方式对 X 和 Y 坐标的位置做出反应。
您能否举一个现成的 Windows 应用程序的例子来说明您的需求?我不太明白您需要什么。或者用图形来描述一下。
如果我理解正确的话,元素_2 应绑定到窗体的底边,而元素_1 应自动垂直调整大小,并缩进到元素_2 的高度。
能否以现成的 Windows 应用程序为例,说明您的需求?我不太明白你需要什么。或者用图形来描述一下。
如果我没理解错的话,元素_2 应绑定到表单的底边,而元素_1 应自动调整垂直大小,并缩进到元素_2 的高度。
你说得没错,也就是说,当窗口大小发生变化时,元素_1 的 Y 轴大小也会发生变化,而你需要元素_2 也跟着缩小,即表单内元素的正常缩放。到目前为止,我已经建立了一个拐杖,即元素_1 不会缩放 ))。我稍后会处理这个问题。
我认为可以通过在库的 "核心 "中创建图形对象 来实现。
试着这样做
交易、自动交易系统和交易策略测试论坛
讨论文章 "GUI X:多行输入框中的文本选择(第 13 版)"。
Anatoli Kazharski, 2017.05.08 21:40
在自定义应用程序类中,你需要创建一个CProgram::OnTradeEvent() 方法。
在主文件中,应在OnTrade() 函数中调用该方法:
//---
例如,我的CProgram::OnTradeEvent() 方法的内容如下:
试试这样做:
我见过这种方法,但我认为你需要在库的 "核心 "部分(即创建图形对象 时)补充这种用法:
属性
OBJPROP_BACK
我见过这种情况,但我认为在库的 "核心 "部分,即创建图形对象 时,需要对用法进行补充:
属性:
OBJPROP_BACK
然后,图形将覆盖界面的图形对象。
//---
现在先执行ResetWindow()。我稍后会尝试将其内置到内核中,以便自动更新。
然后,图形将覆盖界面的图形对象。
//---
现在先用ResetWindow()。我稍后会尝试将其内置到内核中,以便自动更新。
不完全是这样,你需要把所有图形对象放在前台,然后图形会在后面,我已经在我的图形库 中实现过很多次了))
不完全是这样,你需要将所有图形对象优先置于前台,然后图形就会在后面,我已经在我的图形库中实现过很多次了 ))
我不知道你做了什么,也不知道你是怎么做的,但默认情况下它们都在前台。最近创建的图表在最上面。创建后更改优先级的唯一方法是再次隐藏和显示对象,但应放在底部的对象除外。
在 CTabs.类的方法 中应突出显示一个检查数组是否为空的功能:
中应添加高亮显示,这是对空数组的检查,因为如果没有该检查,在没有标签页的情况下,整个表单会出错崩溃。