windows - программисты, отзовитесь... - страница 2

 

ну, друзья, где тут знаменитые Windows - программисты:

https://www.mql5.com/ru/users/galina_bobro

https://www.mql5.com/ru/users/nikolay7ko

https://www.mql5.com/ru/users/urain

да и многие, многие  другие !

подключайтесь ! я верю задача имеет решение !

MT5 WindProc просто обязана обрабатывать  LVN_GETDISPINFO notification code

Galina Bobro
Galina Bobro
  • www.mql5.com
https://www.mql5.com/en/market/product/23123 К вашему вниманию новый продукт для тестирование сигналов! Доступна ДЕМО версия для тестирования за последний месяц. (Рекомендованный режим тестирования - "Каждый тик на основе реальных тиков")
 
во фриланс
 
TheXpert:
во фриланс

Так оттуда же.

 
Andrey Khatimlianskii:

Так оттуда же.

андрей, привет.

что ты имеешь ввиду ?

вообще тема тебе знакомая, ну, чтение virtual ListView ?

 
Denis Sartakov:

андрей, привет.

что ты имеешь ввиду ?

вообще тема тебе знакомая, ну, чтение virtual ListView ?

Имею в виду, что не для себя пишешь, а ввязался неосторожно. Не?

Я когда-то для четверки допиливал решение. Там было так:

bool FH_OrderClose(int ticket, ...) 
{
   // Выбираем ордер
   if( !FH_OrderSelect(ticket) ) return(false);

   // Открываем диалог закрытия
   PostMessageW(handle_mt, WM_COMMAND, 35451, 0);


bool FH_OrderSelect(int ticket)
{
        if(ticket==0)return(true);

        int Rect[4], l=50;
        int p=posByTicket(ticket);
        if( p!=-1 )
        {
                GetClientRect(sh, Rect);
                PostMessageW(sh, WM_LBUTTONDOWN, 0, Rect[2]-l);
                PostMessageW(sh, WM_LBUTTONUP, 0, Rect[2]-l);
                PostMessageW(sh, WM_LBUTTONDOWN, 0, l);
                PostMessageW(sh, WM_LBUTTONUP, 0, l);
                PostMessageW(lv, WM_KEYDOWN, VK_HOME, 0);
                for(int i=0;i<p;i++)
                {
                        PostMessageW(lv, WM_KEYDOWN, VK_DOWN, 0);
                }
                return(true);
        }
        return(false);
}
 
TheXpert:
во фриланс
Там уже есть эта работа за 100$ дня 2-3 назад была English
 
Andrey Khatimlianskii:

Имею в виду, что не для себя пишешь, а ввязался неосторожно. Не?

Я когда-то для четверки допиливал решение. Там было так:

у меня выбора не было, был вынужден взяться.

не знаю как в мт4 было раньше, сейчас список открытых позиций организован также как в мт5,

Virtual ListView, with class style LVS_OWNERDATA.

то что ты прислал - какой-то бред, иначе не скажешь, sorry.

 
Denis Sartakov:

то что ты прислал - какой-то бред, иначе не скажешь, sorry.

То, что я прислал, работало. Не напрямую получением данных из списка, а переключением по нему кнопками, но работало.

Удачи.

 

Давно не интересовался залезанием в чужую память. Может быть, дело в том, что вывод списка на экран осуществляется не путем показа хранимых в компоненте текстов, а выводом строк из совсем другого места (хоть из дискового файла) как реакция на события вроде OnDraw, RePaint, ReDraw для одного Item (вывод одной строки), а что выведено на экран для других Item - нигде в компоненте не хранится?

 
Vladimir:

Давно не интересовался залезанием в чужую память. Может быть, дело в том, что вывод списка на экран осуществляется не путем показа хранимых в компоненте текстов, а выводом строк из совсем другого места (хоть из дискового файла) как реакция на события вроде OnDraw, RePaint, ReDraw для одного Item (вывод одной строки), а что выведено на экран для других Item - нигде в компоненте не хранится?

тут так все устроено: родитель окна  Virtual ListView, with class style LVS_OWNERDATA

рисует в этом своем дочернем окне  инфу, которую хранит у себя же в своем обработчике WindProc(....).

тот факт, что WindProc(....) родителя  не отрабатывает LVN_GETDISPINFO notification code как нам хочется и как он мог бы отработать,

ничего не означает - хозяин барин !

то есть, то что выведено на экран ListView в виде графики, хранится в текстовом виде только в WindProc(...) родителя,

куда мы никак не сможем попасть,никакин хуки здесь не помогут.

Причина обращения: