![チャートを最大化するには!?](https://celebpanda.com/wp/wp-content/uploads/2021/05/セレブパンダブログ用.jpg)
フェースブックをみてると、よくスマホのゲームでピンを抜くやつの広告が表示されます。
完全クリアする自信があるけど、ダウンロードは絶対にしないセレブパンダだお。
(ダウンロードしたら負けと頑なにダウンロードしない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関数でチャートを最大化できるのです。意外と簡単だったのではないでしょうか!?
これからも、役立つワンポイントを書いていきますだお!