チャートを最大化するには!?

フェースブックをみてると、よくスマホのゲームでピンを抜くやつの広告が表示されます。
完全クリアする自信があるけど、ダウンロードは絶対にしないセレブパンダだお。
(ダウンロードしたら負けと頑なにダウンロードしないww)

今日もMQL4のノウハウを伝えるだお。

前回は、ダブルクリックするための記事を書きました。

http://celebpanda.com/wp/columns/diary/40/

MQL4では、チャートを最大化する関数は、残念ながらありません。

その代わり、WindowsのAPIを使えば、チャートを最大化することが可能です。
使い方は、ソースをお見せします。

Windows APIとは

Windows Application Interfaceの略で、マイクロソフトが提供しているWindows(OS)を操作する関数の集まりのことです。

Windows APIウィンドウズ エーピーアイ)とは、Microsoft WindowsシステムコールAPIのこと。特に32ビットプロセッサで動作するWindows 95以降やWindows NTで利用できるものはWin32 APIと呼ばれる。また、それらのWindowsにおけるWin32 APIの実装をWin32と呼ぶ。

https://ja.wikipedia.org/wiki/Windows_API

難しいことはさておき、実際にソースをお見せします。

まずは宣言部分。

/*-- インポートするDLL用の構造体 -----------------------------------*/
struct WINDOWPLACEMENT {
   int Length;
   int Flg;
   int ShowCmd;
   int MinPosX;
   int MinPosY;
   int MaxPosX;
   int MaxPosY;
   int NormalPosLeft;
   int NormalPosTop;
   int NormalPosRight;
   int NormalPosBottom;
};

/*-- インポートするDLLの宣言 ---------------------------------------*/
#import "user32.dll"
   int GetParent(int hWnd);
   int GetWindowPlacement(int hWnd, WINDOWPLACEMENT &lpwndpl);
   int ShowWindow(int hWnd,int nCmdShow);
#import

/*-- DLLで使用する定数の宣言 ---------------------------------------*/
#define SW_MAXIMIZE      3
#define SW_RESTORE       9
#define SW_SHOWMAXIMIZED 3

実際の使い方。MQL4の関数と同じように使えます。

    int Hnd = GetParent((int)ChartGetInteger(0,CHART_WINDOW_HANDLE));
    //ウィンドウの状態を取得
    WINDOWPLACEMENT dpl;
    GetWindowPlacement(Hnd,dpl);
    //最大化になっている場合
    if (dpl.ShowCmd == SW_SHOWMAXIMIZED) {
        //通常に戻す
        ShowWindow(Hnd,SW_RESTORE);
    } else {
        //最大化する
        ShowWindow(Hnd,SW_MAXIMIZE);
    }

GetParent関数で、チャートのウインドウハンドルを取得します。
次に、GetWindowPlacement関数で、チャートが最大になっているか、通常のサイズかを判断しています。
ShowWindow関数で、最大化もしくは通常サイズに戻すことをしています。

ShowWindow関数でチャートを最大化できるのです。意外と簡単だったのではないでしょうか!?

これからも、役立つワンポイントを書いていきますだお!

Twitterでフォローしよう

おすすめの記事