#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);
}
헤더에 코드와 예제가 있습니다. 화 내지 마십시오. 당신이하고있는 일은이 포럼에서 여러 버전으로 오랫동안 여러 번 결정되었습니다. 내 라이브러리에 있는 WinUser32.mqh 헤더를 살펴보는 것으로 충분합니다. 모든 코드가 있습니다. 나는 이미 이것에 대해 여러 번 썼습니다.
// 3.1.1. 이 기능은 지정된 차트의 자동 스크롤을 활성화/비활성화합니다. 무효 ServiceAutoScroll(int hwndChart); // 자동 스크롤이 비활성화된 차트 창에 대한 시스템 핸들입니다. //================================================== ==================================================== ==================================================== =============== // 3.1.2. 이 기능은 지정된 차트의 오프셋을 활성화/비활성화합니다. 성공하면 메서드는 TRUE를 반환하고 그렇지 않으면 FALSE를 반환합니다. bool ServiceShift(int hwndChart); // 오프셋이 활성화/비활성화된 차트 창의 시스템 핸들입니다.
// 3.2.1. 이 함수는 지정된 차트의 자동 스크롤 상태를 반환합니다. 함수는 성공하면 TRUE를 반환하고 그렇지 않으면 FALSE를 반환합니다. 부울 ServiceGetAutoScroll(int hwndChart); // 자동 스크롤 상태가 반환되는 차트 창에 대한 시스템 핸들입니다.
// 3.1.1. 이 기능은 지정된 차트의 자동 스크롤을 활성화/비활성화합니다. 무효 ServiceAutoScroll(int hwndChart); // 자동 스크롤이 비활성화된 차트 창에 대한 시스템 핸들입니다.
// 3.1.2. 이 기능은 지정된 차트의 오프셋을 활성화/비활성화합니다. 성공하면 메서드는 TRUE를 반환하고 그렇지 않으면 FALSE를 반환합니다. bool ServiceShift(int hwndChart); // 오프셋이 활성화/비활성화된 차트 창의 시스템 핸들입니다.
그러나 그것은 필요하지 않습니다!
나는 도서관에 대해 이야기하지 않았다. 그러나 라이브러리에 대해 이야기하면 다음과 같은 기능이 있습니다.
// 3.2.1. Функция возвращает состояние автопрокрутки на указанном графике. В случае успеха функция возвращает TRUE, иначе - FALSE.bool ServiceGetAutoScroll( int hwndChart); // Системный дескриптор окна графика, с которого возвращается состояние автопрокрутки.
정수 최대 = SendMessage( hwndTaskbar, TB_BUTTONCOUNT, 0, 0);
제발 내게 말해줘. TB_BUTTONCOUNT, TB_ISBUTTONPRESSED와 같은 상수의 모든 값을 볼 수 있는 곳 ?!
버튼과 그 상태를 정의하고 싶습니다!
도구 모음에서 단추를 정렬하고 올바른 명령을 찾을 수 있는 명령은 무엇입니까?
누군가가 해본 것이 아닐까요?
그래픽 창 핸들 발견:
내가 뭔가 이해하지 못했습니다... 왜?! 강하게 놀랐다. 내 머리글 봤어? 코드로 판단하면 아닙니다.
차트의 모든 명령은 하나의 기능, 한 줄의 코드입니다.
내가 뭔가 이해하지 못했습니다... 왜?! 강하게 놀랐다. 내 머리글 봤어? 코드로 판단하면 아닙니다.
차트의 모든 명령은 하나의 기능, 한 줄의 코드입니다.
알겠습니다. 이 문제에 대한 해결책을 다른 곳에서 찾아보겠습니다.
불편을 드려 죄송합니다...
알겠습니다. 이 문제에 대한 해결책을 다른 곳에서 찾아보겠습니다.
불편을 드려 죄송합니다...
헤더에 코드와 예제가 있습니다.
이 문제에 대한 예라고 생각하는 것을 여기에 복사하십시오!
이것만 찾았습니다:
// 3.1.1. 이 기능은 지정된 차트의 자동 스크롤을 활성화/비활성화합니다.
무효 ServiceAutoScroll(int hwndChart); // 자동 스크롤이 비활성화된 차트 창에 대한 시스템 핸들입니다.
//================================================== ==================================================== ==================================================== ===============
// 3.1.2. 이 기능은 지정된 차트의 오프셋을 활성화/비활성화합니다. 성공하면 메서드는 TRUE를 반환하고 그렇지 않으면 FALSE를 반환합니다.
bool ServiceShift(int hwndChart); // 오프셋이 활성화/비활성화된 차트 창의 시스템 핸들입니다.
그러나 그것은 필요하지 않습니다!
이 문제에 대한 예라고 생각하는 것을 여기에 복사하십시오!
이것이 기능이라면 여전히 내부가 필요합니다 ...
// 3.2.1. 이 함수는 지정된 차트의 자동 스크롤 상태를 반환합니다. 함수는 성공하면 TRUE를 반환하고 그렇지 않으면 FALSE를 반환합니다.
부울 ServiceGetAutoScroll(int hwndChart); // 자동 스크롤 상태가 반환되는 차트 창에 대한 시스템 핸들입니다.
이 문제에 대한 예라고 생각하는 것을 여기에 복사하십시오!
이것만 찾았습니다:
// 3.1.1. 이 기능은 지정된 차트의 자동 스크롤을 활성화/비활성화합니다.
무효 ServiceAutoScroll(int hwndChart); // 자동 스크롤이 비활성화된 차트 창에 대한 시스템 핸들입니다.
// 3.1.2. 이 기능은 지정된 차트의 오프셋을 활성화/비활성화합니다. 성공하면 메서드는 TRUE를 반환하고 그렇지 않으면 FALSE를 반환합니다.
bool ServiceShift(int hwndChart); // 오프셋이 활성화/비활성화된 차트 창의 시스템 핸들입니다.
그러나 그것은 필요하지 않습니다!
나는 도서관에 대해 이야기하지 않았다. 그러나 라이브러리에 대해 이야기하면 다음과 같은 기능이 있습니다.
위에서 나는 WinUser32.mqh 에 대해 썼습니다. 제어 코드가 있습니다.