文章 "图形界面 X: 简单快速开发库的更新 (版本 2)" - 页 3 12345 新评论 Anatoli Kazharski 2016.08.09 11:26 #21 Alexey Oreshkin: 何时更新?如果您急需更新,可以自行添加以下更改:1.在Defines.mqh 文件中添加新的标识符:#define ON_CLICK_TAB (26) // 开关选项卡//---2.在CTabs 和CIconTabs 类(文件Tabs.mqh 和IconTabs.mqh)的ShowTabElements() 方法中,添加 如下所示的一行://+------------------------------------------------------------------+ //| 仅显示所选标签页的项目 || //+------------------------------------------------------------------+ void CTabs::ShowTabElements(void) { //--- 如果标签页被隐藏,则退出 if(!CElement::IsVisible()) return; //--- 检查所选选项卡的索引 CheckTabIndex(); //--- for(int i=0; i<m_tabs_total; i++) { //--- 获取标签页上所附项目的数量 int tab_elements_total=::ArraySize(m_tab[i].elements); //--- 如果该选项卡突出显示 if(i==m_selected_tab) { //--- 显示选项卡项目 for(int j=0; j<tab_elements_total; j++) m_tab[i].elements[j].Show(); } //--- 隐藏不活动标签页的元素 else { for(int j=0; j<tab_elements_total; j++) m_tab[i].elements[j].Hide(); } } //--- 发送相关信息 ::EventChartCustom(m_chart_id,ON_CLICK_TAB,CElement::Id(),m_selected_tab,""); }//---现在,自定义类的处理程序可以接受标识符为ON_CLICK_TAB 的事件。示例//+------------------------------------------------------------------+ //| 图形事件处理程序| //+------------------------------------------------------------------+ void CProgram::OnEvent(const int id,const long &lparam,const double &dparam,const string &sparam) { //--- 标签按下事件 if(id==CHARTEVENT_CUSTOM+ON_CLICK_TAB) { //--- 如果您按下单选按钮 if(m_tabs.SelectedTab()==0) { switch(m_radio_buttons1.SelectedButtonIndex()){ case 0: m_canvas_table1.Show(); m_canvas_table11.Hide(); m_canvas_table111.Hide(); ModifyCanvasTable1(0); break; case 1: m_canvas_table1.Hide(); m_canvas_table11.Show(); m_canvas_table111.Hide(); ModifyCanvasTable1(1); break; case 2: m_canvas_table1.Hide(); m_canvas_table11.Hide(); m_canvas_table111.Show(); ModifyCanvasTable1(2); break; } return; } return; } } Alexey Oreshkin 2016.08.09 17:00 #22 我还发现了一个错误--我们启动工具,将面板移开,然后开始按单选按钮。绘制表格时,一开始是从左侧边缘开始绘制,然后会拉到所需坐标。 Anatoli Kazharski 2016.08.09 17:43 #23 Alexey Oreshkin: 我还发现了一个错误--我们启动工具,将面板移开,然后开始按单选按钮。绘制表格时,一开始是从左侧边缘开始绘制,然后会拉到所需的坐标。是的,就是这样。以这种表格为例,在CanvasTable.mqh 文件中的CCanvasTable::Show() 方法中添加一行,如下所示://+------------------------------------------------------------------+ //|| 显示元素| //+------------------------------------------------------------------+ void CCanvasTable::Show(void) { //--- 如果项目已经可见,则退出 if(CElement::IsVisible()) return; //--- 使所有对象可见 m_area.Timeframes(OBJ_ALL_PERIODS); m_canvas.Timeframes(OBJ_ALL_PERIODS); m_scrollv.Show(); m_scrollh.Show(); //--- 可见性状态 CElement::IsVisible(true); //--- 移动一个项目 Moving(m_wnd.X(),m_wnd.Y()); }//---如果其他项目也出现此问题,请在它们的Show() 方法中添加相同的一行。所有元素类都将在下一次更新中得到修复。 Rodrigo Campos Fidelis 2016.09.02 06:46 #24 您好,我一直在关注您的工作,非常感激。,您是否已经开发或看到任何可以在表单中使用表格或焦点控件的功能?,我需要在一个 CEdit 或CSpinEdit 中插入一个输入并按 Enter 或按 TAB 键后更改版本,我希望转到下一个 Edit,以便在我的程序中更好地使用。您能帮助我或指导我去哪里查找吗? 非常感谢您对社区的贡献。 Anatoli Kazharski 2016.09.02 10:31 #25 RODRIGO CAMPOS FIDELIS: 我需要在一个 CEdit 或 CSpinEdit 中插入一个输入并按 Enter 或按 TAB 键后更改版本,我希望转到下一个 Edit,以便在我的程序中更好地使用。 目前这是不可能的。我会考虑如何实现。 Rodrigo Campos Fidelis 2016.09.04 17:51 #26 Anatoli Kazharski: 目前还无法实现。我会考虑如何实现。Anatoli Kazharski, 我正在考虑这个问题。有什么方法可以让我通过代码激活 "编辑 "模式,就像当它们不是 只读 模式时 ,我们在 CEdit 上点击两下,它们就会变成蓝色并被选中一样。 或者,有什么方法可以让我在运行代码时,通过飞溅、消息框或任何自动请求的窗口询问输入。 我在考虑一些可能性,我真的不想使用 DLL,我还不是那么专业。但我真的有这个意愿。如果您能给我一些指导或想法,我真的可以改进我们的代码。 anddm 2016.09.07 00:33 #27 亲爱的阿纳托利,非常感谢你的努力!我只想指出,MenuItem.mqh 第 237 行有一个错字,导致编译不成功:" > The type of the menu item can be set using the CMenuItem::TypeMenuItem()") method");应改为" > The type of the menu item can be set using the CMenuItem::TypeMenuItem() method");对吗? haily27 2018.06.06 04:28 #28 这是MT4最后一个版本吗? greentreen 2018.08.20 19:18 #29 编辑器总是闪烁。 https://www.mql5.com/en/forum/274301 Mano 2019.12.11 13:29 #30 如何只创建标签? 12345 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
何时更新?
如果您急需更新,可以自行添加以下更改:
1.在Defines.mqh 文件中添加新的标识符:
//---
2.在CTabs 和CIconTabs 类(文件Tabs.mqh 和IconTabs.mqh)的ShowTabElements() 方法中,添加 如下所示的一行:
//---
现在,自定义类的处理程序可以接受标识符为ON_CLICK_TAB 的事件。
示例
我还发现了一个错误--我们启动工具,将面板移开,然后开始按单选按钮。绘制表格时,一开始是从左侧边缘开始绘制,然后会拉到所需的坐标。
是的,就是这样。以这种表格为例,在CanvasTable.mqh 文件中的CCanvasTable::Show() 方法中添加一行,如下所示:
//---
如果其他项目也出现此问题,请在它们的Show() 方法中添加相同的一行。所有元素类都将在下一次更新中得到修复。
,您是否已经开发或看到任何可以在表单中使用表格或焦点控件的功能?
,我需要在一个 CEdit 或CSpinEdit 中插入一个输入并按 Enter 或按 TAB 键后更改版本,我希望转到下一个 Edit,以便在我的程序中更好地使用。
非常感谢您对社区的贡献。
我需要在一个 CEdit 或 CSpinEdit 中插入一个输入并按 Enter 或按 TAB 键后更改版本,我希望转到下一个 Edit,以便在我的程序中更好地使用。
目前还无法实现。我会考虑如何实现。
或者,有什么方法可以让我在运行代码时,通过飞溅、消息框或任何自动请求的窗口询问输入。
我在考虑一些可能性,我真的不想使用 DLL,我还不是那么专业。但我真的有这个意愿。如果您能给我一些指导或想法,我真的可以改进我们的代码。
亲爱的阿纳托利,非常感谢你的努力!
我只想指出,MenuItem.mqh 第 237 行有一个错字,导致编译不成功:
" > The type of the menu item can be set using the CMenuItem::TypeMenuItem()") method");应改为
" > The type of the menu item can be set using the CMenuItem::TypeMenuItem() method");对吗?
编辑器总是闪烁。
https://www.mql5.com/en/forum/274301