typedef struct tagWNDCLASSEX {// это с MSDN
UINT cbSize;
UINT style;
WNDPROC lpfnWndProc;//<-
int cbClsExtra;
int cbWndExtra;
HINSTANCE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCTSTR lpszMenuName;
LPCTSTR lpszClassName;
HICON hIconSm;
} WNDCLASSEX, *PWNDCLASSEX;
構造体を int 配列に格納する際に,矢印で示す行を追加する。
lpwcx[0]=0x30;//cbSize// это на MQL4
lpwcx[1]=0x0A23;//style//lpwcx[2]=lpfnWndProc;<-
lpwcx[3]=0;//cbClsExtra
lpwcx[4]=0;//cbWndExtra
lpwcx[5]=GetModuleHandleA(lpModuleName);//hInstance
lpwcx[6]=LoadIconA(hInstance,IDI[0]);//hIcon
lpwcx[7]=LoadCursorA(hInstance,IDC[0]);//hCursor
lpwcx[8]=GetStockObject(WHITE_BRUSH);//hbrBackground
lpwcx[9]=StrStrA(lpszMenuName,lpszMenuName);
lpwcx[10]=StrStrA(lpszClassName,lpszClassName);
lpwcx[11]=0;//hIconSm//передаём структуру в упакованном интовом массиве и регистрируем класс
atom=RegisterClassExA(lpwcx[12]);
ストップロスで決済する必要があります。外為取引は日本時間の午前0時に開始されます。
しかし、ストップロスの価格ではなく、ストップロスよりはるかに低い最初の価格で決済されます。そしてTakeProfitは確実にクローズします。したがって、StopLossで放置しないほうがよく、さらに週末にポジションを放置しないほうがよいでしょう。
ユーザー機能のアドレスはどうすればわかりますか?つまり、もし私のリストに
では、myFuncのアドレスはどのように取得すればよいのでしょうか?WndProcのアドレス(カスタム関数で記述)を調べて、さらにクラスのパラメータに渡す方法を調べて欲しいです。
ストップロスで決済する必要があります。外為取引は日本時間の午前0時に開始されます。
確実とは言い難く、最初の見積もりで終了する可能性もあります。書類を読まなければならないが、証券会社は好き勝手なことを書いている。
ユーザー機能のアドレスはどうすればわかりますか?つまり、もし私のリストに
では、myFuncのアドレスはどのように取得すればよいのでしょうか?WndProcのアドレス(カスタム関数で記述)を調べて、さらにクラスのパラメータに渡す方法を調べて欲しいです。
これはMQL4関数で、文字通りの意味でのコンパイルはされておらず、実行 時にインタープリターを介して実行されます。
なぜ専門家は注文を修正しないのか?
これがその機能です。
このようにスタート時に呼び出されます。
これはMQL4の関数で、文字通りの意味でのコンパイルはされておらず、実行時にインタープリタを介して実行されます。
。
そこに犬が埋まっている。自作のDLLを一切使わず、MQL4+WinAPIだけでロボット用の独立したウィンドウインターフェースを選択したため、2~3週間も時間を浪費してしまい、ただただ申し訳なく思っています。もっと早く気付けばよかったと、自分のコードや開発に対して反省しています。
要約するとWNDCLASS(またはWNDCLASSEX)を記述する際に、コードをDLLにコピーしないとオーバーラップした(つまり子ではない)ウィンドウを作成することができません。
構造体を int 配列に格納する際に,矢印で示す行を追加する。
配列に、ウィンドウプロシージャ、すなわち、このウィンドウのマウスおよびキーボードハンドラのアドレスが渡されます。MQL4のウィンドウプロシージャは、ユーザー定義関数として実装できますが、インタープリター内でそのアドレスを取得することは不可能なので、渡すものがありません。MQL4で可能な最大限のことは、標準のウィンドウクラスを使用することですが、それらは子ウィンドウとしてのみ使用されることになります。簡単に言うと、インジケータで作成した ウィンドウはマウスで掴んでターミナルの境界線上に置くことができない(子ウィンドウになるため)のに対し、オーバーラップしたウィンドウはターミナルの境界線上に置くことができるのです。標準のウィンドウクラスに対する子ウィンドウはmt4gui.dllに既に実装されていますので、もし必要な方がいらっしゃればご利用ください。しかし、独自のマウスとキーボードハンドラを持つオーバーラップウィンドウは不可能です。
モデレーターの方には、このダイアログと関連するすべてのメッセージを「MQL4でウィンドウを作成する方法」のような別のトピックに投稿していただき、他の人が同じ間違いをしないように、また検索エンジンで見つけられるようにお願いします。
ごきげんよう。
ブローカーはオンライン モードでのみトレーダーのコンピュータのIP アドレスを読み取るのでしょうか、それともMT4のどこかのフォルダから履歴をアンロードすることは技術的に可能でしょうか?
私は、(Ctrl、Alt、Shiftなどのコントロールキーを使わない)「ホットキー」を実装することにしました。しかし、そのコードはうまくいきません。
なぜうまくいかないのでしょうか?理論上、スマイリーは変化することになっています。私は81(Qキーコード)を設定しましたが、そこには何でも設定することができます。以下はキーコードです。
追記:PeekMessageを呼び出せない - システムエラー127 "指定されたプロシージャが見つかりません".RegisterHotKeyは1(true)を返します。PeekMessageの後にNativeAPIでRtlGetLastWin32Error()を呼び出して見ましたが、それすら来ません。そして、ポイントに
- を選択すると、コンパイルエラーが 表示されます。