下一版MetaTrader 5中的浮动窗口 - 页 2 12345678 新评论 Maxim Romanov 2018.07.27 06:31 #11 终端的情况越来越好了! Alexey Viktorov 2018.07.27 07:13 #12 Sergey Savinkin: 是否有可能减少/隐藏厚厚的图表窗框以节省空间?你可以用这些脚本来检查。他们现在正在工作。 移除框架的代码 //#property script_show_inputs #import "user32.dll" int SetWindowLongA(int hWnd,int nIndex, int dwNewLong); int GetWindowLongA(int hWnd,int nIndex); int SetWindowPos(int hWnd, int hWndInsertAfter,int X, int Y, int cx, int cy, int uFlags); int GetParent(int hWnd); int GetTopWindow(int hWnd); int GetWindow(int hWnd, int wCmd); #import #define GWL_STYLE -16 #define WS_CAPTION 0x00C00000 #define WS_BORDER 0x00800000 #define WS_SIZEBOX 0x00040000 #define WS_DLGFRAME 0x00400000 #define SWP_NOSIZE 0x0001 #define SWP_NOMOVE 0x0002 #define SWP_NOZORDER 0x0004 #define SWP_NOACTIVATE 0x0010 #define SWP_FRAMECHANGED 0x0020 #define GW_CHILD 0x0005 #define GW_HWNDNEXT 0x0002 //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ int OnStart() { int hChartParent = GetParent((int)ChartGetInteger(ChartID(), CHART_WINDOW_HANDLE)); int hMDIClient = GetParent(hChartParent); int hChildWindow = GetTopWindow(hMDIClient); while (hChildWindow > 0) { RemoveBorderByWindowHandle(hChildWindow); hChildWindow = GetWindow(hChildWindow, GW_HWNDNEXT); } return(0); } void RemoveBorderByWindowHandle(int hWindow) { int iNewStyle = GetWindowLongA(hWindow, GWL_STYLE) & (~(WS_BORDER | WS_DLGFRAME | WS_SIZEBOX)); if (hWindow>0 && iNewStyle>0) { SetWindowLongA(hWindow, GWL_STYLE, iNewStyle); SetWindowPos(hWindow,0, 0, 0, 0, 0, SWP_NOZORDER | SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE | SWP_FRAMECHANGED); } }把框架放回去的代码。 //#property script_show_inputs #import "user32.dll" int SetWindowLongA(int hWnd,int nIndex, int dwNewLong); int GetWindowLongA(int hWnd,int nIndex); int SetWindowPos(int hWnd, int hWndInsertAfter,int X, int Y, int cx, int cy, int uFlags); int GetParent(int hWnd); int GetTopWindow(int hWnd); int GetWindow(int hWnd, int wCmd); #import #define GWL_STYLE -16 #define WS_CAPTION 0x00C00000 #define WS_BORDER 0x00800000 #define WS_SIZEBOX 0x00040000 #define WS_DLGFRAME 0x00400000 #define SWP_NOSIZE 0x0001 #define SWP_NOMOVE 0x0002 #define SWP_NOZORDER 0x0004 #define SWP_NOACTIVATE 0x0010 #define SWP_FRAMECHANGED 0x0020 #define GW_CHILD 0x0005 #define GW_HWNDNEXT 0x0002 //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ int OnStart() { int hChartParent = GetParent((int)ChartGetInteger(ChartID(), CHART_WINDOW_HANDLE)); int hMDIClient = GetParent(hChartParent); int hChildWindow = GetTopWindow(hMDIClient); while (hChildWindow > 0) { RemoveBorderByWindowHandle(hChildWindow); hChildWindow = GetWindow(hChildWindow, GW_HWNDNEXT); } return(0); } void RemoveBorderByWindowHandle(int hWindow) { int iNewStyle = GetWindowLongA(hWindow, GWL_STYLE) | ((WS_BORDER | WS_DLGFRAME | WS_SIZEBOX)); if (hWindow>0 && iNewStyle>0) { SetWindowLongA(hWindow, GWL_STYLE, iNewStyle); SetWindowPos(hWindow,0, 0, 0, 0, 0, SWP_NOZORDER | SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE | SWP_FRAMECHANGED); } } 附加的文件: RemoveBorders_All.mq5 2 kb RestoreBorders_All.mq5 2 kb Sergey Savinkin 2018.07.27 07:29 #13 Alexey Viktorov:你可以用这些脚本来检查。他们现在正在工作。 移除框架的代码 把框架放回去的代码。 谢谢。但这可能需要在每次启动终端 时运行?也在每个图表上。 Vladislav Andruschenko 2018.07.27 07:34 #14 好消息。 特别是对于来自面板的交易。 Alexey Viktorov 2018.07.27 07:44 #15 Sergey Savinkin:谢谢你。但这可能需要在每次启动终端 时运行?也在每个图表上。不是在每个图表上,这是肯定的。我曾为MT4和所有窗口同时使用,并为每个窗口分别使用。但通过试验和错误,我只为MT5重新制作了这些。不过,在重启终端时,我没有注意它们。不知何故,我没有保持打开几个窗口,实际上也没有使用这些脚本。 Renat Fatkhullin 2018.07.27 08:35 #16 总是在上面可能会做,但不是透明。我们还不会碰窗框。 窗口状态控制是指你自己在画布或对象上绘制一切。 Mesaoria 2018.07.27 09:48 #17 Renat Fatkhullin:我们很可能在上面做总是,但不是透明。我们暂时不打算触碰窗框。 窗口状态控制是指你自己在画布或物体上绘制所有的东西。雷纳特,好消息。 是否可以像MDI那样,在不同的屏幕内管理窗口?我们可能会做各种各样的Tile Horizontally等等。 Renat Fatkhullin 2018.07.27 10:30 #18 Mesaoria:雷纳特,好消息。 是否可以像MDI那样,在不同的屏幕内管理窗口?横向铺设,以此类推。 这是一项手工工作,我们不打算将其自动化。 Alexey Volchanskiy 2018.07.27 10:34 #19 Vitaly Muzichenko:而我仍然是17岁 :)而你的收入将达到17倍之多 )) Vitaly Muzichenko 2018.07.27 12:14 #20 Alexey Volchanskiy:而且你会赚到17倍的钱 ))不,只是在全屏下打开符号会很方便。现在,如果你打开了4个以上的图表,分析图表是非常不方便的,而且是在27英寸的显示器上进行分析。工作符号是15个,对于市场分析,我需要3个额外的窗口--总共18个窗口。 因此,窗户的分离是个好消息! 12345678 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
是否有可能减少/隐藏厚厚的图表窗框以节省空间?
你可以用这些脚本来检查。他们现在正在工作。
移除框架的代码
把框架放回去的代码。
你可以用这些脚本来检查。他们现在正在工作。
移除框架的代码
把框架放回去的代码。
谢谢。但这可能需要在每次启动终端 时运行?也在每个图表上。
好消息。
特别是对于来自面板的交易。
谢谢你。但这可能需要在每次启动终端 时运行?也在每个图表上。
不是在每个图表上,这是肯定的。我曾为MT4和所有窗口同时使用,并为每个窗口分别使用。但通过试验和错误,我只为MT5重新制作了这些。不过,在重启终端时,我没有注意它们。不知何故,我没有保持打开几个窗口,实际上也没有使用这些脚本。
总是在上面可能会做,但不是透明。我们还不会碰窗框。
窗口状态控制是指你自己在画布或对象上绘制一切。
我们很可能在上面做总是,但不是透明。我们暂时不打算触碰窗框。
窗口状态控制是指你自己在画布或物体上绘制所有的东西。
雷纳特,好消息。
是否可以像MDI那样,在不同的屏幕内管理窗口?我们可能会做各种各样的Tile Horizontally等等。
雷纳特,好消息。
是否可以像MDI那样,在不同的屏幕内管理窗口?横向铺设,以此类推。
而我仍然是17岁 :)
而你的收入将达到17倍之多 ))
而且你会赚到17倍的钱 ))
不,只是在全屏下打开符号会很方便。现在,如果你打开了4个以上的图表,分析图表是非常不方便的,而且是在27英寸的显示器上进行分析。工作符号是15个,对于市场分析,我需要3个额外的窗口--总共18个窗口。
因此,窗户的分离是个好消息!