文章 "图形界面 X: 文本编辑框, 图片滑块和简单控件 (构建 5)" - 页 4 12345 新评论 Anatoli Kazharski 2016.12.28 07:34 #31 Artyom Trishkin: 为什么文本输入框 中的空字符串不是"",而是""""? 很久以来,我一直不明白为什么检查空字符串不起作用....。我也不知道为什么。它是以空字符串("")初始化的。您可以通过查看CTextEdit 类的构造函数来确定这一点://+------------------------------------------------------------------+//| 构造函数|//+------------------------------------------------------------------+ CTextEdit::CTextEdit(void) : m_edit_value(""), m_reset_mode(false), m_show_text_pointer_mode(false), m_align_mode(ALIGN_LEFT), m_text_edit_state(true), m_area_color(clrNONE), m_icon_x_gap(0), m_icon_y_gap(3), m_icon_file_on(""), m_icon_file_off(""), m_label_text(""), m_label_x_gap(0), m_label_y_gap(4), m_label_color(clrBlack), m_label_color_hover(C'85,170,255'), m_label_color_locked(clrSilver), m_edit_y_size(20), m_edit_x_gap(50), m_edit_y_gap(0), m_edit_color(clrWhite), m_edit_color_locked(clrWhiteSmoke), m_edit_text_color(clrBlack), m_edit_text_color_locked(clrSilver), m_edit_text_color_highlight(clrRed), m_edit_border_color(clrSilver), m_edit_border_color_hover(C'85,170,255'), m_edit_border_color_locked(clrSilver) {//--- 在基类中保存元素类的名称 CElementBase::ClassName(CLASS_NAME);//--- 设置按下鼠标左键的优先级 m_area_zorder =1; m_label_zorder =0; m_edit_zorder =2; } Discussion of article "Graphical 图形界面 X: 文本编辑框, 图片滑块和简单控件 图形界面 VI: 复选框控件,编辑框控件以及它们的组合类型 (第一章) Artyom Trishkin 2016.12.28 07:40 #32 Anatoli Kazharski:我不知道为什么。它的初始化值是空字符串("")。你可以在CTextEdit 类的构造函数中找到 答案:... 是的,我看到了。这就是为什么我不明白为什么检查""的条件在初始化后不起作用。然后我注意到,当光标放在输入框 内时,会在输入框 内创建一个很宽的空格--正好是一个空格的大小(大约像这样: )。我检查了" ",一切正常。 Pavel Kolchin 2016.12.28 10:39 #33 Pavel Kolchin:连接时出现以下错误(不影响工作)cannot load custom indicator 'C:\MetaTrader\MT5 demo\MQL5\Experts\new_menue_fc_1.00.ex5::Indicators\SubWindow.ex5' [4802]CWndEvents::DetermineSubwindow > Ошибка при получении хэндла индикатора в директории ::Indicators\SubWindow.ex5 !我使用的是这个版本的程序库,菜单在主图形中。 我在文件中找不到它的连接位置 Anatoli Kazharski 2016.12.28 10:42 #34 Pavel Kolchin: 我找不到它在文件中的连接位置在您测试的 MQL 应用程序的主文件中,删除这一行://+------------------------------------------------------------------+//|TestLibrary05.mq5//| Copyright 2016, MetaQuotes Software Corp.//|http://www.mql5.com ||//+------------------------------------------------------------------+#property copyright "2016, MetaQuotes Software Corp."#property link "http://www.mql5.com"//--- 连接 "子窗口专家 "模式的指示器#resource "\\Indicators\\SubWindow.ex5" Pavel Kolchin 2016.12.28 10:46 #35 Anatoli Kazharski:在您测试的 MQL 应用程序的主文件中,删除这一行:#resource "\\Indicators\\SubWindow.ex5" 这就是问题所在,已删除 Anatoli Kazharski 2016.12.28 10:51 #36 Pavel Kolchin: 问题就在这里,它被删除了在Defines.mqh 文件中,将EXPERT_IN_SUBWINDOW 参数设置为false://+------------------------------------------------------------------+//|定义。mqh///2015年,MetaQuotes Software Corp.版权所有。//|http://www.mql5.com ||//+------------------------------------------------------------------+//--- 窗口模式下的专家#define EXPERT_IN_SUBWINDOW false Pavel Kolchin 2016.12.28 10:59 #37 Anatoli Kazharski:在Defines.mqh 文件中,将EXPERT_IN_SUBWINDOW 参数设置为false: Anatoli Kazharski 2016.12.28 14:56 #38 Pavel Kolchin: 好极了!) Rodrigo Pandini 2017.01.27 21:09 #39 在 Defines.mqh 中,"子窗口中的专家 "模式默认为 true,这有什么原因吗?//--- "子窗口专家 "模式#define EXPERT_IN_SUBWINDOW true当专家不在子窗口中使用时,这会导致错误。 我将 Defines.mqh 中的默认值改为 false,直到现在一切似乎都能正常工作。 Cid Ougaske 2017.04.08 02:09 #40 亲爱的阿纳托利,恭喜你,你的界面非常有用、简单、漂亮。我的 EA 和指标都采用了它。真的非常感谢你。请继续努力! 12345 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
为什么文本输入框 中的空字符串不是"",而是""""? 很久以来,我一直不明白为什么检查空字符串不起作用....。
我也不知道为什么。它是以空字符串("")初始化的。您可以通过查看CTextEdit 类的构造函数来确定这一点:
//| 构造函数|
//+------------------------------------------------------------------+
CTextEdit::CTextEdit(void) : m_edit_value(""),
m_reset_mode(false),
m_show_text_pointer_mode(false),
m_align_mode(ALIGN_LEFT),
m_text_edit_state(true),
m_area_color(clrNONE),
m_icon_x_gap(0),
m_icon_y_gap(3),
m_icon_file_on(""),
m_icon_file_off(""),
m_label_text(""),
m_label_x_gap(0),
m_label_y_gap(4),
m_label_color(clrBlack),
m_label_color_hover(C'85,170,255'),
m_label_color_locked(clrSilver),
m_edit_y_size(20),
m_edit_x_gap(50),
m_edit_y_gap(0),
m_edit_color(clrWhite),
m_edit_color_locked(clrWhiteSmoke),
m_edit_text_color(clrBlack),
m_edit_text_color_locked(clrSilver),
m_edit_text_color_highlight(clrRed),
m_edit_border_color(clrSilver),
m_edit_border_color_hover(C'85,170,255'),
m_edit_border_color_locked(clrSilver)
{
//--- 在基类中保存元素类的名称
CElementBase::ClassName(CLASS_NAME);
//--- 设置按下鼠标左键的优先级
m_area_zorder =1;
m_label_zorder =0;
m_edit_zorder =2;
}
我不知道为什么。它的初始化值是空字符串("")。你可以在CTextEdit 类的构造函数中找到 答案:
...
连接时出现以下错误(不影响工作)
cannot load custom indicator 'C:\MetaTrader\MT5 demo\MQL5\Experts\new_menue_fc_1.00.ex5::Indicators\SubWindow.ex5' [4802]
我使用的是这个版本的程序库,菜单在主图形中。
我找不到它在文件中的连接位置
在您测试的 MQL 应用程序的主文件中,删除这一行:
//|TestLibrary05.mq5
//| Copyright 2016, MetaQuotes Software Corp.
//|http://www.mql5.com ||
//+------------------------------------------------------------------+
#property copyright "2016, MetaQuotes Software Corp."
#property link "http://www.mql5.com"
//--- 连接 "子窗口专家 "模式的指示器
#resource "\\Indicators\\SubWindow.ex5"
在您测试的 MQL 应用程序的主文件中,删除这一行:
问题就在这里,它被删除了
在Defines.mqh 文件中,将EXPERT_IN_SUBWINDOW 参数设置为false:
//|定义。mqh
///2015年,MetaQuotes Software Corp.版权所有。
//|http://www.mql5.com ||
//+------------------------------------------------------------------+
//--- 窗口模式下的专家
#define EXPERT_IN_SUBWINDOW false
在Defines.mqh 文件中,将EXPERT_IN_SUBWINDOW 参数设置为false:
#define EXPERT_IN_SUBWINDOW true
当专家不在子窗口中使用时,这会导致错误。
我将 Defines.mqh 中的默认值改为 false,直到现在一切似乎都能正常工作。