MetaTrader 5'in sonraki sürümünde kayan pencereler - sayfa 2

 
Terminal iyileşiyor!
 
Sergey Savinkin :
Yer kazanmak için grafik penceresinin kalın kenarlıklarını küçültmek/gizlemek mümkün olacak mı?

Bu scriptler ile kontrol edebilirsiniz. Şimdi çalışıyorlar.

Çerçeve kaldırma kodu

 //#property script_show_inputs
#import "user32.dll"
   int SetWindowLongA( int hWnd, int nIndex, int dwNewLong);
   int GetWindowLongA( int hWnd, int nIndex);
   int SetWindowPos( int hWnd, int hWndInsertAfter, int X, int Y, int cx, int cy, int uFlags);
   int GetParent( int hWnd);
   int GetTopWindow( int hWnd);
   int GetWindow( int hWnd, int wCmd);
#import

#define GWL_STYLE         - 16 
#define WS_CAPTION         0x00C00000 
#define WS_BORDER         0x00800000
#define WS_SIZEBOX         0x00040000
#define WS_DLGFRAME       0x00400000
#define SWP_NOSIZE         0x0001
#define SWP_NOMOVE         0x0002
#define SWP_NOZORDER       0x0004
#define SWP_NOACTIVATE     0x0010
#define SWP_FRAMECHANGED   0x0020
#define GW_CHILD           0x0005
#define GW_HWNDNEXT       0x0002

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int OnStart () 
{
   int hChartParent = GetParent(( int ) ChartGetInteger ( ChartID (), CHART_WINDOW_HANDLE ));    
   int hMDIClient = GetParent(hChartParent); 
   int hChildWindow = GetTopWindow(hMDIClient);
   while (hChildWindow > 0 )
   {
      RemoveBorderByWindowHandle(hChildWindow);
      hChildWindow = GetWindow(hChildWindow, GW_HWNDNEXT);
   }
 
   
   return ( 0 );
}
void RemoveBorderByWindowHandle( int hWindow)
{
   int iNewStyle = GetWindowLongA(hWindow, GWL_STYLE) & (~(WS_BORDER | WS_DLGFRAME | WS_SIZEBOX));    
   if (hWindow> 0 && iNewStyle> 0 ) 
   {
      SetWindowLongA(hWindow, GWL_STYLE, iNewStyle);
      SetWindowPos(hWindow, 0 , 0 , 0 , 0 , 0 , SWP_NOZORDER | SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE | SWP_FRAMECHANGED);
   }
}

Çerçeve dönüş kodu.

 //#property script_show_inputs
#import "user32.dll"
   int SetWindowLongA( int hWnd, int nIndex, int dwNewLong);
   int GetWindowLongA( int hWnd, int nIndex);
   int SetWindowPos( int hWnd, int hWndInsertAfter, int X, int Y, int cx, int cy, int uFlags);
   int GetParent( int hWnd);
   int GetTopWindow( int hWnd);
   int GetWindow( int hWnd, int wCmd);
#import

#define GWL_STYLE         - 16 
#define WS_CAPTION         0x00C00000 
#define WS_BORDER         0x00800000
#define WS_SIZEBOX         0x00040000
#define WS_DLGFRAME       0x00400000
#define SWP_NOSIZE         0x0001
#define SWP_NOMOVE         0x0002
#define SWP_NOZORDER       0x0004
#define SWP_NOACTIVATE     0x0010
#define SWP_FRAMECHANGED   0x0020
#define GW_CHILD           0x0005
#define GW_HWNDNEXT       0x0002

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int OnStart () 
{
   int hChartParent = GetParent(( int ) ChartGetInteger ( ChartID (), CHART_WINDOW_HANDLE ));    
   int hMDIClient = GetParent(hChartParent); 
   int hChildWindow = GetTopWindow(hMDIClient);
   while (hChildWindow > 0 )
   {
      RemoveBorderByWindowHandle(hChildWindow);
      hChildWindow = GetWindow(hChildWindow, GW_HWNDNEXT);
   }
 
   
   return ( 0 );
}
void RemoveBorderByWindowHandle( int hWindow)
{
   int iNewStyle = GetWindowLongA(hWindow, GWL_STYLE) | ((WS_BORDER | WS_DLGFRAME | WS_SIZEBOX));    
   if (hWindow> 0 && iNewStyle> 0 ) 
   {
      SetWindowLongA(hWindow, GWL_STYLE, iNewStyle);
      SetWindowPos(hWindow, 0 , 0 , 0 , 0 , 0 , SWP_NOZORDER | SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE | SWP_FRAMECHANGED);
   }
}
 
Alexey Viktorov :

Bu scriptler ile kontrol edebilirsiniz. Şimdi çalışıyorlar.

Çerçeve kaldırma kodu

Çerçeve dönüş kodu.

Teşekkür ederim. Ancak bunun, muhtemelen, terminali her başlattığınızda çalıştırılması gerekecek mi? Ayrıca, her grafikte.

 

harika haber.

özellikle panellerden ticaret için.

 
Sergey Savinkin :

Teşekkür ederim. Ancak bunun, muhtemelen, terminali her başlattığınızda çalıştırılması gerekecek mi? Ayrıca, her grafikte.

Her grafikte değil, orası kesin. MT4 ve tüm pencereler için aynı anda ve her pencere için ayrı ayrı aldım. Ancak deneme yanılma yoluyla, yalnızca bunları MT5 için yeniden oluşturdum. Ancak terminali yeniden başlattığımda dikkat etmedim. Her nasılsa birkaç pencereyi açık tutmuyorum ve pratikte bu komut dosyalarını kullanmıyorum.

 

Her zaman üstte büyük olasılıkla yapılacak, ancak şeffaflık değil. Henüz pencere çerçevelerine dokunmuyoruz.

Pencerenin durumunu yönetmek conda'dır, her şeyi kendi başınıza tuval veya nesneler üzerinde çizersiniz.

 
Renat Fatkhullin :

Her zaman üstte büyük olasılıkla yapılacak, ancak şeffaflık değil. Henüz pencere çerçevelerine dokunmuyoruz.

Pencerenin durumunu yönetmek conda'dır, her şeyi kendi başınıza tuval veya nesneler üzerinde çizersiniz.

Harika bir haber.

Ve pencereleri MDI gibi farklı ekranlarda yönetmek mümkün olacak mı? Her Türlü Yatay Döşeme vb.

 
Mesaoria :

Harika bir haber.

Ve pencereleri MDI gibi farklı ekranlarda yönetmek mümkün olacak mı? Her Türlü Yatay Döşeme vb.

Bu manuel bir çalışmadır, otomatikleştirmeyi planlamıyoruz.
 
Vitaly Muzichenko :

Ve daha 17 yaşındayım :)

Ve 17 kat daha fazla kazanacaksınız))


 
Alexey Volchanskiy :

Ve 17 kat daha fazla kazanacaksınız))

Hayır, sembolleri tam ekran olarak açmak uygun olacaktır. Şimdi, 4'ten fazla çizelge açıksa, çizelgeleri analiz etmek son derece sakıncalıdır ve bu 27. monitördedir. 15 çalışma sembolü vardır, piyasadaki durumu analiz etmek için 3 ek pencereye ihtiyaç vardır - toplam 18 adet.

Yani pencere ayrımı harika bir haber!