我如何确定滚动按钮是被按下还是被压下,如果是,就压下它 ! - 页 6 12345678 新评论 Vadim Zhunko 2012.02.24 16:34 #51 LEOK: 如果这是功能,我仍然需要它的内部... // 3.2.1. 该函数返回指定图形的自动滚动状态。如果成功,该函数返回TRUE,否则返回FALSE。 bool ServiceGetAutoScroll(int hwndChart); // 图表窗口的系统描述符,自动滚动状态从这里返回。 你不会对该功能的内部结构感到满意。而且我将有太多的东西要从不同的地方复制。我有一个与MT4窗口合作的课程。一切都在那里集中完成。有太多东西必须要复制。 例如,这个功能。 // 3.2.1. Функция возвращает состояние автопрокрутки на указанном графике. В случае успеха функция возвращает TRUE, иначе - FALSE. EXPFUNC(BOOL) ServiceGetAutoScroll(const HWND hwndChart) // Системный дескриптор окна графика, с которого возвращается состояние автопрокрутки. { try { Init(); // Инициализация библиотеки. return(MT4_WINDOWS->GetAutoScroll(hwndChart)); } catch(TCHAR* szExclusion) { Utils::Debugging::MessageBoxStop(_T("ServiceGetAutoScroll()"), szExclusion); } catch(tstring &sExclusion) { Utils::Debugging::MessageBoxStop(_T("ServiceGetAutoScroll()"), sExclusion); } catch(...) { Utils::Debugging::MessageBoxStop(_T("ServiceGetAutoScroll()"), _T("Системная ошибка!") + LAST_ERROR); } return(FALSE); } 它是否适合你?在GetAutoScroll() 方法背后有一个完整的类。 利用已经做过的事情,这样你就不会浪费你的时间。否则,你可以通过开发自己的处理器开始编程,或者更好的是通过开采和加工硅。 L_E_O 2012.02.24 19:43 #52 总之,第一个版本的脚本似乎在某种程度上是可行的 ! 当然,还有更简单、更可靠的版本,但我从来没有得到过它们 ... 脚本附后... 附加的文件: getpixel.ex4 5 kb Рустам 2012.02.24 20:11 #53 如果你想给我看代码,就给我看代码。 如果你不想给我看代码,就不要说。 L_E_O 2012.02.24 20:50 #54 FAQ: 如果你想展示它,就展示代码。 如果你不想展示代码,就保持沉默。 因此,它已经被讨论并显示... 这个代码中没有任何隐藏的东西,请。 #property copyright "Copyright © 2012 ЛЕО" #import "user32.dll" int GetWindow (int, int); int GetAncestor (int hWnd, int gaFlags); int GetWindowTextLengthA (int); int GetWindowTextA (int, string, int); int GetWindowDC (int hWnd); #import #import "gdi32.dll" int GetPixel (int hDC, int x, int y); int hwnd, hg, h; string Name = "012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"; string pr[2]; int deinit() {ObjectsDeleteAll();Comment ("");} int start() { ObjectsDeleteAll(); Comment (""); int hwnd = GetAncestor (WindowHandle(Symbol(),Period()),2); //дескриптор основного окна терминала // Первое дочернее окно int temp = GetWindow (hwnd, 5); GetWindowTextA (temp, Name, GetWindowTextLengthA(temp)+1); // Поиск первого дочернего окна по имени if (Name != "Стандартная" || Name == "Графики" || Name == "Графические инструменты") { for (int i=0;i<10;i++) { temp = GetWindow (temp, 2); if (temp == 0) break; GetWindowTextA (temp, Name, GetWindowTextLengthA(temp)+1); if (Name == "Стандартная" || Name == "Графики" || Name == "Графические инструменты") {hg = temp; break;} } } else hg = temp; // Поиск второго дочернего окна "Графики" int h = GetWindow (hg, 5); GetWindowTextA (h, Name, GetWindowTextLengthA(h)+1); if (Name != "Графики") { for (i=0;i<10;i++) { h = GetWindow (h, 2); if (h == 0) break; GetWindowTextA (h, Name, GetWindowTextLengthA(h)+1); if (Name == "Графики") break; } } // если цвет пикселя кнопки =10526880, значит кнопка нажата, в противном случае нет while (!IsStopped()) { if (GetPixel (GetWindowDC(h),166,3) == 10526880) pr[0] = "ПРОКРУТКА"; else pr[0] = "прокрутка"; if (GetPixel (GetWindowDC(h),200,3) == 10526880) pr[1] = " СМЕЩЕНИЕ"; else pr[1] = " смещение"; Comment ("\n ",pr[0],pr[1]); Sleep(500); } return(0); } Рустам 2012.02.24 21:12 #55 我个人并不关心这个问题。 如果有必要,我会阅读Ex4。 我担心的是其他参与者,他们可能会有类似的问题。 Vadim Zhunko 2012.02.24 21:15 #56 代码中的弱点。 1.与图表没有联系。这段代码将检索出任何活动图表的按钮位置。 2.本规范没有规定面板的自主位置。也就是说,这段代码不会一直工作。 3.该代码仅适用于俄罗斯的本地化。 4.这很有趣,但不是很有绅士风度:-))。 在C++之后看MLQ4的WinAPI代码是很可怕的。 L_E_O 2012.02.24 21:20 #57 对不起,我只是用我能想到的东西编出来的,我是个初学者,不像你是个ACC! 这就是为什么我要求公布代码,这样就不会有这3个缺点了 ! 我不明白颜色的问题(第四点)!? Андрей 2012.02.24 21:53 #58 LEOK: 关于颜色(第四点),我不明白!? 我对这个颜色也感到震惊。 TB_ISBUTTONCHECKED有什么问题? Vadim Zhunko 2012.02.24 22:32 #59 LEOK: 对不起,我只是用我能想到的东西编出来的,我是个初学者,不像你是个ACC! 这就是为什么我要求公布代码,这样就不会有这3个缺点了 ! 我不明白颜色的问题(第四项)! 这是一种这样的技术文化。用钳子拧开螺栓和螺母是没有文化的。有一个扳手可用于此。 如何做到没有这3个缺点,已经写过几次了。 L_E_O 2012.02.25 04:57 #60 jartmailru: 我对这个颜色也感到震惊。 为什么TB_ISBUTTONCHECKED如此令人讨厌? 你不能说:喜欢或不喜欢,如果我没有看到它,不知道,也没有试过它!你不能说:喜欢或不喜欢它。 这就是为什么我请求帮助,并再次要求提供在mql4上使用TB_ISBUTTONCHECKED的代码示例 ... 12345678 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
如果这是功能,我仍然需要它的内部...
// 3.2.1. 该函数返回指定图形的自动滚动状态。如果成功,该函数返回TRUE,否则返回FALSE。
bool ServiceGetAutoScroll(int hwndChart); // 图表窗口的系统描述符,自动滚动状态从这里返回。
你不会对该功能的内部结构感到满意。而且我将有太多的东西要从不同的地方复制。我有一个与MT4窗口合作的课程。一切都在那里集中完成。有太多东西必须要复制。
例如,这个功能。
它是否适合你?在GetAutoScroll() 方法背后有一个完整的类。
利用已经做过的事情,这样你就不会浪费你的时间。否则,你可以通过开发自己的处理器开始编程,或者更好的是通过开采和加工硅。
总之,第一个版本的脚本似乎在某种程度上是可行的 !
当然,还有更简单、更可靠的版本,但我从来没有得到过它们 ...
脚本附后...
如果你想展示它,就展示代码。 如果你不想展示代码,就保持沉默。
因此,它已经被讨论并显示...
这个代码中没有任何隐藏的东西,请。
代码中的弱点。
1.与图表没有联系。这段代码将检索出任何活动图表的按钮位置。
2.本规范没有规定面板的自主位置。也就是说,这段代码不会一直工作。
3.该代码仅适用于俄罗斯的本地化。
4.这很有趣,但不是很有绅士风度:-))。
在C++之后看MLQ4的WinAPI代码是很可怕的。
对不起,我只是用我能想到的东西编出来的,我是个初学者,不像你是个ACC!
这就是为什么我要求公布代码,这样就不会有这3个缺点了 !
我不明白颜色的问题(第四点)!?
关于颜色(第四点),我不明白!?
TB_ISBUTTONCHECKED有什么问题?
对不起,我只是用我能想到的东西编出来的,我是个初学者,不像你是个ACC!
这就是为什么我要求公布代码,这样就不会有这3个缺点了 !
我不明白颜色的问题(第四项)!
这是一种这样的技术文化。用钳子拧开螺栓和螺母是没有文化的。有一个扳手可用于此。
如何做到没有这3个缺点,已经写过几次了。
我对这个颜色也感到震惊。
为什么TB_ISBUTTONCHECKED如此令人讨厌?
你不能说:喜欢或不喜欢,如果我没有看到它,不知道,也没有试过它!你不能说:喜欢或不喜欢它。
这就是为什么我请求帮助,并再次要求提供在mql4上使用TB_ISBUTTONCHECKED的代码示例 ...