IndicatorPropertyFromWindow

Author: (C)opyright � 2008, Ilnur
0 Views
0 Downloads
0 Favorites
IndicatorPropertyFromWindow
//+------------------------------------------------------------------+
//|                                  IndicatorPropertyFromWindow.mq4 |
//|                                        (C)opyright © 2008, Ilnur |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+

// Ñêðèïò âûçûâàåò ñâîéñòâà ïåðâîãî èíäèêàòîðà â îêíå, êóäà áûë áðîøåí ñðèïò. 
// Äëÿ ðàáîòû ñêðèïòà íåîáõîäèìî ðàçðåøèòü âûçîâ ôóíêöèé èç ñèñòåìíûõ DLL:
// Ñåðâèñ -> Íàñòðîéêè  -> Ñîâåòíèêè -> Ðàçðåøèòü èìïîðò DLL.

#property copyright "(C)opyright © 2008, Ilnur"
#property link      "http://www.metaquotes.net"

#include <WinUser32.mqh>

#import "user32.dll"
	int GetAncestor(int hWnd, int gaFlags);
	int GetLastActivePopup(int hWnd);
	int GetDlgItem(int hDlg, int nIDDlgItem);
#import

#define PAUSE 100

#define VK_HOME 0x24
#define VK_DOWN 0x28

#define GA_ROOT 2

#define TVM_GETNEXTITEM 0x110A

//+------------------------------------------------------------------+
//| Âûçûâàåò îêíî "Ñïèñîê èíäèêàòîðîâ" è âîçâðàùàåò åãî äåñêðèïòîð   |
//+------------------------------------------------------------------+
int GetListDialog(int hOwnedWnd)
{
	PostMessageA(hOwnedWnd,WM_COMMAND,35419,0);
	Sleep(PAUSE);
//----
	return(GetLastActivePopup(hOwnedWnd));
}

//+------------------------------------------------------------------+
//| Âûçûâàåò îêíî ñâîéñòâ èíäèêàòîðà è âîçâðàùàåò åãî äåñêðèïòîð     |
//+------------------------------------------------------------------+
int GetPropertyDialog(int hOwnedWnd, int hListDlg)
{
	PostMessageA(hListDlg,WM_COMMAND,0x48B,GetDlgItem(hListDlg,0x48B));
	Sleep(PAUSE);
//----
	return(GetLastActivePopup(hOwnedWnd));
}

//+------------------------------------------------------------------+
//| Âîçâðàùàåò îáùåå êîëè÷åñòâî ïîäîêîí â îêíå ñïèñêà                |
//+------------------------------------------------------------------+
int GetTreeViewCount(int hWndControl)
{
	int hItem, nTreeViewCount = 0;
//----
	hItem = SendMessageA(hWndControl,TVM_GETNEXTITEM,0,0);
	while(hItem!=0)
	{
		hItem = SendMessageA(hWndControl,TVM_GETNEXTITEM,1,hItem);
		nTreeViewCount++;
	}
//----
	return(nTreeViewCount);
}

//+------------------------------------------------------------------+
//| Îñíîâíàÿ ôóíêöèÿ ñêðèïòà                                         |
//+------------------------------------------------------------------+
int start()
{
	int i = 0, hParentWnd, hListDlg, hTreeView, hPropDlg;
	int nTreeViewCount, nWindowIndex;
//---- ïîëó÷àåì äåñêðèïòîð îñíîâíîãî îêíà òåðìèíàëà
	hParentWnd = GetAncestor(WindowHandle(Symbol(),Period()),GA_ROOT);
//----
	if(hParentWnd!=0)
	{
	//---- âûçûâàåì îêíî "Ñïèñîê èíäèêàòîðîâ"
		hListDlg = GetListDialog(hParentWnd);
	//---- íàõîäèì ñïèñîê èíäèêàòîðîâ
		hTreeView = GetDlgItem(hListDlg,0x48C);
	//---- îïðåäåëÿåì îáùåå êîëè÷åñòâî äîñòóïíûõ îêîí â ñïèñêå
		nTreeViewCount = GetTreeViewCount(hTreeView);
	//----
		nWindowIndex = WindowOnDropped()-(WindowsTotal()-nTreeViewCount);
		if(nWindowIndex<0) return(0);
	//---- óñòàíàâëèâàåì êóðñîð íà âåðõíåé ñòðî÷êå ñïèñêà
		PostMessageA(hTreeView,WM_KEYDOWN,VK_HOME,0);
	//---- â öèêëå ïåðåáèðàåì îêíà â ñïèñêå
		while(i<nTreeViewCount)
		{
			if(IsWindowEnabled(GetDlgItem(hListDlg,0x48B))==0)
			{
				if(i==nWindowIndex)
				{
				//---- ñìåùàåì êóðñîð íà ñëåäóþùóþ ïîçèöèþ ñïèñêà
					PostMessageA(hTreeView,WM_KEYDOWN,VK_DOWN,0);
				//---- âûçûâàåì îêíî ñâîéñòâ âûäåëåííîãî èíäèêàòîðà
					GetPropertyDialog(hParentWnd,hListDlg);
					break;
				}
				else i++;
			}
			PostMessageA(hTreeView,WM_KEYDOWN,VK_DOWN,0);
		}
	}

	return(0);
}

Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---