#import "user32.dll"
int GetWindow (int, int);
int FindWindowExA (int, int, string, string);
int GetParent (int hWnd);
bool GetCursorPos (int& Pos[2]);
bool GetWindowRect (int hWnd,int& Pos[4]);
int GetKeyState (int button);
void mouse_event (int dwFlags, int dx, int dy, int dwData, int dwExtraInfo);
int GetAncestor (int hWnd, int gaFlags);
int GetWindowTextLengthA (int);
int GetWindowTextA (int, string, int);
#import
#import "gdi32.dll" int GetPixel (int hDC, int x, int y);
int Pos[2];
int rect[4];
int hwnd, hg, h;
int X, Y;
string Name = "012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234";
int deinit() {ObjectsDeleteAll();Comment ("");}
int start() {
ObjectsDeleteAll(); Comment ("");
int hwnd = GetAncestor (WindowHandle(Symbol(),Period()),2); //дескриптор основного окна терминалаint temp = GetWindow (hwnd, 5);
int Count = GetWindowTextLengthA (temp); GetWindowTextA (temp, Name, Count+1);
if (Name != "Стандартная" || Name == "Графики" || Name == "Графические инструменты") {
for (int i=0;i<10;i++) {
temp = GetWindow (temp, 2); if (temp == 0) break;
Count = GetWindowTextLengthA (temp); GetWindowTextA (temp, Name, Count+1);
if (Name == "Стандартная" || Name == "Графики" || Name == "Графические инструменты") {hg = temp; break;}
}
} else hg = temp;
int h = GetWindow (hg, 5);
Count = GetWindowTextLengthA (h); GetWindowTextA (h, Name, Count+1);
if (Name != "Графики") {
for (i=0;i<10;i++) {
h = GetWindow (h, 2); if (h == 0) break;
Count = GetWindowTextLengthA (h); GetWindowTextA (h, Name, Count+1);
if (Name == "Графики") break;
}
}
Print (DecToHex(h,8));
while (!IsStopped()) {
GetWindowRect (h,rect);
GetCursorPos (Pos);
X = Pos[0] - rect[0];
Y = Pos[1] - rect[1];
Comment ("X= ",X,"\n","Y= ",Y); Sleep(100);
}
return(0);
}
string DecToHex (int n, int dig) {
string s[], r="";
string Sym[16] = {"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"};
ArrayResize (s,dig);
for (int i=0; i<dig; i++) s[i]="0";
i = dig-1;
while (n != 0) {s[i] = Sym[n%16]; n = n>>4; i--; }
for (i=0; i<dig; i++) r=r+s[i];
return (r);
}
// 3.2.1. Функция возвращает состояние автопрокрутки на указанном графике. В случае успеха функция возвращает TRUE, иначе - FALSE.bool ServiceGetAutoScroll(int hwndChart); // Системный дескриптор окна графика, с которого возвращается состояние автопрокрутки.
int max = SendMessage ( hwndTaskbar, TB_BUTTONCOUNT, 0, 0) 。
请告诉我在哪里可以看到所有的常量值,如:TB_BUTTONCOUNT,TB_ISBUTTONPRESSED?
我想确定按钮和它的状态 !
可以用什么工具条命令来滚动浏览按钮并找到正确的按钮?
有人这样做了吗?
已找到图形窗口描述符。
我不明白...为了什么?我非常惊讶。你看了我的头像吗?不符合规范。
图表中的任何命令都是一个函数,一行代码。
我不明白...为了什么?我非常惊讶。你看了我的头像吗?不符合规范。
图表中的任何命令都是一个函数,一行代码。
好吧,我到其他地方去找这个问题的解决办法。
对不起,给您带来不便。
好的,我将在其他地方寻找解决这个问题的办法。
对不起,给您带来不便...
在标题中,有一个代码和例子。
在这里复制你认为是这个问题的一个例子。
我只发现了这个。
// 3.1.1 函数启用/停用指定图表的自动滚动。
void ServiceAutoScroll(int hwndChart); // 图表窗口的系统描述符,该窗口的自动滚动功能被禁用。
//=====================================================================================================================================================================
// 3.1.2. 该函数启用/禁用指定图表的移动。如果成功,方法返回TRUE,否则--FALSE。
bool ServiceShift(int hwndChart); // 图表窗口的系统描述符,在此基础上启用/禁用转变。
但你不需要它 !
在这里复制你认为是关于这个主题的例子。
如果这个函数在这里,我仍然需要它的内部结构...
// 3.2.1 该函数返回指定图形的自动滚动状态。如果成功,该函数返回TRUE,否则返回FALSE。
bool ServiceGetAutoScroll(int hwndChart); // 图表窗口的系统描述符,自动滚动状态将从该窗口返回。
在这里复制你认为是关于这个主题的例子。
我只发现了这个。
// 3.1.1. 该函数启用/禁用指定图表的自动滚动功能。
void ServiceAutoScroll(int hwndChart); // 图表窗口的系统描述符,该窗口的自动滚动功能被禁用。
// 3.1.2. 函数启用/禁用指定图表的移动。如果成功,该方法返回TRUE,否则返回FALSE。
bool ServiceShift(int hwndChart); // 图表窗口的系统描述符,在此基础上启用/禁用转变。
但你不需要它 !
我不是在说图书馆的事。但如果是关于图书馆,就有一个功能。
我在上面写了关于WinUser32.mqh。控制代码就在那里。