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 Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---