Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Используй MQL5 Cloud Network. Тестируй роботов с гиперскоростью!
mql
17
mql 2011.02.27 08:15 

Добрый день, помогите с примером кода для данной функции.

CreateWindowExW (Unicode)

msdn.link

Файлы:
mql
17
mql 2011.02.27 08:38  


// create window #0 [window].
HWND create_wnd0()
{
HWND wnd;
wnd = CreateWindowEx(0x00000100, WND_CLASS_NAME0, "window", 0x14CF0000, CW_USEDEFAULT, CW_USEDEFAULT, 400, 300, NULL, NULL, instance, NULL);
ShowWindow(wnd, SW_SHOWNORMAL);
UpdateWindow(wnd);
return wnd;
}

пример на с++

но как быть с WND_CLASS_NAME0 ?

VonDo Mix
1542
VonDo Mix 2011.02.27 09:06  
include <WinUser32.mqh>
#define      sty                            0x00800000
#define     WS_EX_TOPMOST                  0x00000008
#import "user32.dll"
int  CreateWindowExA(

            int dwExStyle,
         string lpClassName, //?A null-terminated string or a class atom created by a previous call to the RegisterClass or RegisterClassEx function. 
         string lpWindowName, //?
            int dwStyle,
            int x,
            int y,
            int nWidth,
            int nHeight,
            int hWndParent,
            int hMenu,
            int hInstance, //@
            int lpParam );   //@
   
#import
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {int i;
   int hWnd3=CreateWindowExA(0x10180 ,
                       "EDIT",
                       "A V A T A R A ' s",
                        0x14CC0044  ,
                        400, 200, 150, 250, 
                        0, 0,  0,  0);
   PostMessageA (WindowHandle (Symbol(), Period()), WM_COMMAND, 33324,
                                                                   0);
   PostMessageA (WindowHandle (Symbol(), 0), 
      RegisterWindowMessageA ("MetaTrader4_Internal_Message"), 2, 1);
   Print(hWnd3);
   i=EnableWindow(hWnd3,true);
   Print(i);
   
        i=ShowWindow(hWnd3,10);
        Print(i);
        
   i=SetActiveWindow(hWnd3);
   
   Print(i);
   i=SetFocus(hWnd3);
   Print(i);
   Sleep (3000);
  MessageBox("Видно было?");
//----
   i=SetFocus(hWnd3);
   Sleep (3000);
   return(0);
  }
mql
17
mql 2011.02.27 09:13  

Sorento, Большой респект(c) за пример.

спасибо!

IgorM М
4801
IgorM М 2011.02.27 09:14  
Sorento:


начал заниматься похожей задачей - сэкономили мне кучу времени, спс

ЗЫ: а как нарисовать многомногомного пикселей на этом окошке, уж очень хочется рисовать по координатам XY, а не бар/цена ;)

VonDo Mix
1542
VonDo Mix 2011.02.27 09:21  

не специалист я, просто балуюсь ;)

    GetClientRect WindowFromDC(hDC), rectClient;
    fStep = rectClient.nbottom / 222;

    for (lOnBand = 0; lOnBand< 221;lOnBand++){
        SetRect (rectFill, 0, lOnBand * fStep, rectClient.nright + 1, (lOnBand + 1) * fStep);
        hBrush = CreateSolidBrush(RGB(( lOnBand), ( lOnBand), ( lOnBand)));
        Fillrect (hDC, rectFill, hBrush);
        DeleteObject (hBrush);
        }         

градиентная залифка...

mql
17
mql 2011.02.27 09:22  
тоже рисовать буду :)
Sergey Sartakov
1287
Sergey Sartakov 2011.02.28 04:05  

Как посмотрю тут есть знатоки Windows API.

Такой вот вопрос.

Пусть имеем:

Приложение-1.

1. Создали и зарегистрировали в нем Windows Class, скажем, с именем WClass_1

2. Написали обработчик сообщений WinProc_1, на который ссылается WClass_1

3. Создали окно в этом классе, обозначим его Win_1

Приложение-1 запустили и оно работает.

Пусть далее имеем:

Приложение-2.

1. Создали и зарегистрировали в нем Windows Class, скажем, с именем WClass_2

2. Написали обработчик сообщений WinProc_2, на который ссылается WClass_2

3. Создали окно в этом классе, обозначим его Win_2

Приложение-2 запустили и оно работает.

----------------------------------------------------------------------------

Далее:

В приложение-2 я нахожу системно-уникальный идентификатор для окна Win_1, принадлежащего Приложению-1 (т.н. handler окна)

и посылаю для этого окна сообщение с идентификатором, скажем, WM_USER_Приложение-1.

Вопрос: система передаст это сообщение в обработчик сообщений WinProc_1 ?

----------------------------------------------------------------------

Сам знал когда-то, но давно это было, забыл уже все. Тут один парень спрашивал как поиметь котировки из MT4 в свою собственную программу,

вот я и задумался.



ZZZEROXXX
768
ZZZEROXXX 2011.03.02 17:40  
а разве есть другие варианты?
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий