При создании графического объекта функцией ObjectCreate() необходимо указать тип создаваемого объекта, который может принимать одно из значений перечисления ENUM_OBJECT. Дальнейшие уточнения свойств созданного объекта возможно с помощью функций по работе с графическими объектами.
Существуют 11 видов событий, которые можно обрабатывать с помощью функции предопределенной функции OnChartEvent(). Для пользовательских событий предусмотрено 65535 идентификаторов в диапазоне от CHARTEVENT_CUSTOM до CHARTEVENT_CUSTOM_LAST включительно. Для генерации пользовательского события необходимо использовать функцию EventChartCustom...
//+------------------------------------------------------------------+//| This piece of code will copy any text we want to the clipboard |//+------------------------------------------------------------------+/*
#import "kernel32.dll"
int GlobalAlloc(int Flags, int Size); long GlobalAlloc(uint flags,ulong bytes);
int GlobalLock(int hMem); long GlobalLock(HANDLE mem);
int GlobalUnlock(int hMem); int GlobalUnlock(HANDLE mem);
int GlobalFree(int hMem); long GlobalFree(HANDLE mem);
int lstrcpyW(int ptrhMem, string Text);
#import
#import "user32.dll"
int OpenClipboard(int hOwnerWindow); int OpenClipboard(HANDLE wnd_new_owner)
int EmptyClipboard(); int EmptyClipboard(void);
int CloseClipboard(); int CloseClipboard(void);
int SetClipboardData(int Format, int hMem); long SetClipboardData(uint format,HANDLE mem);
#import
*/#define GMEM_MOVEABLE 2#define CF_UNICODETEXT 13#include <WinAPI\winuser.mqh>
#include <WinAPI\winbase.mqh>
// Copies the specified text to the clipboard, returning true if successfulbool CopyTextToClipboard(string Text)
{
bool bReturnvalue = false;
long wnd_new_owner=0 ;
// Try grabbing ownership of the clipboard if (OpenClipboard(wnd_new_owner) != 0) {
// Try emptying the clipboardif (EmptyClipboard() != 0) {
// Try allocating a block of global memory to hold the text int lnString = StringLen(Text);
long hMem = GlobalAlloc(GMEM_MOVEABLE, lnString * 2 + 2);
if (hMem != 0) {
// Try locking the memory, so that we can copy into itlong ptrMem = GlobalLock(hMem);
if (ptrMem != 0) {
// Copy the string into the global memory
lstrcpyW(ptrMem, Text);
// Release ownership of the global memory (but don't discard it)
GlobalUnlock(hMem);
// Try setting the clipboard contents using the global memoryif (SetClipboardData(CF_UNICODETEXT, hMem) != 0) {
// Okay
bReturnvalue = true;
} else {
// Failed to set the clipboard using the global memory
GlobalFree(hMem);
}
} else {
// Meemory allocated but not locked
GlobalFree(hMem);
}
} else {
// Failed to allocate memory to hold string
}
} else {
// Failed to empty clipboard
}
// Always release the clipboard, even if the copy failed
CloseClipboard();
} else {
// Failed to open clipboard
}
return (bReturnvalue);
}
voidOnStart(){
bool re = false ;
re =CopyTextToClipboard("11111");
printf(re);
}
我有什么毛病?我怎样才能使只有未结清的订单被考虑?这段代码还捕获了部分关闭的订单,我不需要这样做
我有一个OBJ_RECTANGLE 对象,通过价格和时间链接,而不是通过坐标。
И?这就对了。当你压缩时间线时,矩形也会被压缩。这符合逻辑吗?你是否在为逻辑而挣扎?
追踪图表中的转变。
И?这就对了。当你缩减时间线时,矩形也会缩减。这符合逻辑吗?你是否在为逻辑而挣扎?
追踪图表中的转变。
请告诉我该往哪边挖。
请告诉我该走哪条路。
你从我的帖子中引用的正是我告诉你的内容。
有几种类型的物体,你可以为你的目的使用。你现在使用的肯定不是正确的。
这就留下了几个选择。而所有这些都在这里,你只需阅读并询问你不明白的地方。
请告诉我该走哪条路。
我上面展示的对象和这个。
我上面展示的对象,还有这个。
我没有看到解决我问题的对象,你呢?除非OBJ_TEXT 支持一个框架!?
我没有看到解决我问题的对象,你呢?除非OBJ_TEXT 如果它支持框架!?
Rectangle_label是我需要的。
但我试图用ChartTimePriceToXY将时间、价格翻译成坐标。我能够在正确的地方绘制,但同样地,当滚动图表时,它站在原地,这对我来说并不奏效。
这和BitMap的情况一样,因为它是通过坐标连接的,这意味着所有BitMaps在滚动图表时都会站在原地,这不适合我。
那么总的来说,有一个问题,是否有可能实现我上面描述的想法?
Rectangle_label是我需要的。
但我试图用ChartTimePriceToXY将时间、价格翻译成坐标。我能够在正确的地方绘制,但同样地,当滚动图表时,它站在原地,这对我来说并不奏效。
这和BitMap的情况一样,因为它是通过坐标连接的,这意味着所有BitMaps在滚动图表时都会站在原地,这不适合我。
那么总的来说,有可能实现我上述的想法吗?
是的。
我给了你OnChartEvent()的帮助链接。
大家好,我在MT5上遇到了lstrcpyW()的问题。
lstrcpyW()在winbase.mqh中定义:string lstrcpyW(ushort &string1[],const string string2)。
这段代码将字符串复制到剪贴板上,我如何改变它以使其发挥作用?