脚本: 透视 MetaTrader 5 - 页 2 123 新评论 Vladimir Karputov 2014.03.14 04:11 #11 版本更改:版本 1.20:重新加入图表时,终端再次变得不透明。目前,1.2 版已送审。 growcapital 2014.03.14 08:55 #12 你好!请帮我找到一个 mt5 设置止损的脚本。 Vladimir Karputov 2014.03.14 10:08 #13 中的更改:版本 1.20: 重新加入计划表时,终端变得不透明。 --- 2014.03.14 11:26 #14 Версия 1.10: Поддержка Windows XP 32-bit.你破坏了一切。你不得不为 32 和 64 的句柄/指针制作两种调用 DLL 函数的变体示例 Vladimir Karputov 2014.03.14 13:57 #15 barabashkakvn:版本 1.10:支持 Windows XP 32 位。sergeev: 你破坏了一切。你必须为 32 和 64 的句柄/指针调用两种不同的 DLL 函数示例 感谢您提供的示例!我不能保证马上就能解决这个问题,因为我需要解决这样一个问题:从 Windows XP 到 Windows 8.1 的操作系统中,user32.dll 库都包含哪些函数? Mikhail Vdovin 2014.03.14 20:44 #16 我怀疑 MT5 版本 900 或 910 中调用 DLL 的机制被破坏了。服务台中的应用程序 #976227。崩溃可能与此有关。各位开发人员,请查看....。 Roman Guz 2014.03.17 23:17 #17 非常有趣!) Mikhail Vdovin 2014.03.18 18:59 #18 micle: 我怀疑 MT5 版本 900 或 910 中调用 DLL 的机制被破坏了。服务台中的应用程序 #976227。崩溃可能与此有关。各位开发人员,请看这里... 我的问题是通过另一个函数声明解决的...活到老,学到老 ) Alain Verleyen 2014.08.21 18:43 #19 barabashkakvn:中的更改:版本 1.20:重新加入日程表时,终端变得不透明。 在英文代码库中,可用版本仍为 1.10。 Vladimir Karputov 2014.08.21 19:07 #20 版本 1.20 //+------------------------------------------------------------------+ //|透明度。mq5 //|版权 © 2014, 弗拉基米尔-卡尔普托夫 || //|http://wmua.ru/slesar/ | | //+------------------------------------------------------------------+ #property copyright "版权归弗拉基米尔-卡尔普托夫所有,2014 年 #property link "http://wmua.ru/slesar/" #property version "1.20" #import "user32.dll" //+------------------------------------------------------------------+ //| GetAncestor(获取祖先)。读取对象祖先的句柄。 //| 指定窗口。Извлекает дескриптор предка заданного окна || //+------------------------------------------------------------------+ int GetAncestor(int hwnd,int gaFlags); //+------------------------------------------------------------------+ //| GetWindowLongW.读取指定窗口的信息 //| window.Получает информацию об указанном окне || //+------------------------------------------------------------------+ int GetWindowLongW( int hWnd, int nIndex // GWL_EXSTYLE ); //+------------------------------------------------------------------+ //| SetWindowLongW.Изменяет атрибут заданного окна | | //+------------------------------------------------------------------+ int SetWindowLongW( int hWnd, char nIndex, // GWL_EXSTYLE int dwNewLong // ws_ex_layered ); //+------------------------------------------------------------------+ //| SetLayeredWindowAttributes(设置分层窗口属性)。设置分层窗口的不透明度和透明度 //| 分层窗口的色键。Устанавливает светопроницаемость || //| и прозрачность окраски многослойного окна | //+------------------------------------------------------------------+ bool SetLayeredWindowAttributes( int hwnd,// 分层窗口的句柄 int crKey, // 0 int bAlpha, // степень непрозрачности 0-255 int dwFlags // 0x00000002 ); #import #define GA_ROOT 0x0002 // 通过遍历父窗口链检索根窗口。 #define GWL_EXSTYLE -20 // 设置新的扩展窗口样式 #define WS_EX_LAYERED 0x00080000 // 风格。窗口是分层窗口。 #define LWA_ALPHA 0x00000002 // 使用 bAlpha 来确定分层窗口的不透明度。 //+------------------------------------------------------------------+ //| 脚本程序启动功能| //+------------------------------------------------------------------+ void OnStart() { //--- long mainChartID=ChartID(); // возвращает идентификатор текущего графика int hdlmainChartID=ChartWindowsHandle(mainChartID); int hdlRoot=GetAncestor(hdlmainChartID,GA_ROOT); int SetWindowLongW_func; if(GetWindowLongW(hdlRoot,GWL_EXSTYLE)&WS_EX_LAYERED) { // У окна уже есть стиль WS_EX_LAYERED。Удалим WS_EX_LAYERED из этого окна стилей. // 窗口已有 WS_EX_LAYERED 样式。从该窗口样式中删除 WS_EX_LAYERED。 SetWindowLongW_func=SetWindowLongW(hdlRoot,GWL_EXSTYLE, GetWindowLongW(hdlRoot,GWL_EXSTYLE)&~WS_EX_LAYERED); return; } // Устанавливаем WS_EX_LAYERED на ROOT окно SetWindowLongW_func=SetWindowLongW(hdlRoot,GWL_EXSTYLE, GetWindowLongW(hdlRoot,GWL_EXSTYLE)|WS_EX_LAYERED); SetLayeredWindowAttributes(hdlRoot,0,(255*70)/100,LWA_ALPHA); return; } //+------------------------------------------------------------------+ //| 函数获取句柄图形| //| Функция получает хэндл графика| //+------------------------------------------------------------------+ int ChartWindowsHandle(long chart_ID) { //--- 准备变量以获取属性值 //--- подготовим переменную для получения значения свойства long result=-1; //-- 重置错误值 //--- сбросим значение ошибки ResetLastError(); //--- 接收属性值 //--- получим значение свойства if(!ChartGetInteger(chart_ID,CHART_WINDOW_HANDLE,0,result)) { //--- 在专家日志中显示错误信息 //--- выведем сообщение об ошибке в журнал "Эксперты" Print(__FUNCTION__+", Error Code = ",GetLastError()); } //--- 返回图表属性的值 //--- вернем значение свойства графика return((int)result); } //+------------------------------------------------------------------+ 123 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
版本更改:
版本 1.20:重新加入图表时,终端再次变得不透明。
目前,1.2 版已送审。
中的更改:
版本 1.20: 重新加入计划表时,终端变得不透明。
Версия 1.10: Поддержка Windows XP 32-bit.
你破坏了一切。
你不得不为 32 和 64 的句柄/指针制作两种调用 DLL 函数的变体
示例
barabashkakvn:
版本 1.10:支持 Windows XP 32 位。
你破坏了一切。
你必须为 32 和 64 的句柄/指针调用两种不同的 DLL 函数
示例
我怀疑 MT5 版本 900 或 910 中调用 DLL 的机制被破坏了。服务台中的应用程序 #976227。崩溃可能与此有关。各位开发人员,请看这里...
中的更改:
版本 1.20:重新加入日程表时,终端变得不透明。
版本 1.20