// 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 ?
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); }
Sorento, Большой респект(c) за пример.
спасибо!
начал заниматься похожей задачей - сэкономили мне кучу времени, спс
ЗЫ: а как нарисовать многомногомного пикселей на этом окошке, уж очень хочется рисовать по координатам XY, а не бар/цена ;)
не специалист я, просто балуюсь ;)
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); }
градиентная залифка...
Как посмотрю тут есть знатоки 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 в свою собственную программу,
вот я и задумался.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Добрый день, помогите с примером кода для данной функции.
CreateWindowExW (Unicode)
msdn.link