Скачать MetaTrader 5

Как вытащить текст из списка ордеров?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Alexey Navoykov
4612
Alexey Navoykov  

Кто знает, как вытащить текст из окна списка ордеров? Данный список является виртуальным, поэтому обычными сообщениями LVM_GETITEM и LVM_GETITEMTEXT ничего естественно не вытянешь. По идее нужно как-то получать через LVN_GETDISPINFO, но я как ни пытался, всё безрезультатно. Смотрел сообщения в Spy, там родительское окно всегда получает уведомление LVN_GETDISPINFO при изменении положения списка. Только непонятно, заполняется ли при этом текстовый буфер или нет. У меня то ничего не заполняется... Значит как-то по другому контрол получает текст?

Ещё там приходит какое-то уведомление с кодом FFFFFFF4, возможно это оно и есть, но хрен поймёшь что это такое.

В общем, если кто сталкивался с этим, подскажите, плиз, а то я уже запарился.

Alexey Navoykov
4612
Alexey Navoykov  
sanyooooook:

А какой именно текст нужно вытащить?
Это не имеет значения. Любой текст.
o_o
Модератор
24105
o_o  
Meat:

Кто знает, как вытащить текст из окна списка ордеров? Данный список является виртуальным, поэтому обычными сообщениями LVM_GETITEM и LVM_GETITEMTEXT ничего естественно не вытянешь. По идее нужно как-то получать через LVN_GETDISPINFO, но я как ни пытался, всё безрезультатно. Смотрел сообщения в Spy, там родительское окно всегда получает уведомление LVN_GETDISPINFO при изменении положения списка. Только непонятно, заполняется ли при этом текстовый буфер или нет. У меня то ничего не заполняется... Значит как-то по другому контрол получает текст?

Ещё там приходит какое-то уведомление с кодом FFFFFFF4, возможно это оно и есть, но хрен поймёшь что это такое.

В общем, если кто сталкивался с этим, подскажите, плиз, а то я уже запарился.


http://forums.codeguru.com/showthread.php?t=385824
Alexey Navoykov
4612
Alexey Navoykov  
Почитал, но ничего нового там не увидел. Текстовый буфер должен заполняться приложением при получении уведомления LVN_GETDISPINFO. Но почему-то этого не происходит в данном случае. Я попробовал с помощью подмены оконной процендуры отловить это уведомление, посылаемое контролом. Но на выходе получаю буфер, заполненный каким-то мусором. Что ж за мистика такая...
o_o
Модератор
24105
o_o  
Meat:
Почитал, но ничего нового там не увидел. Текстовый буфер должен заполняться приложением при получении уведомления LVN_GETDISPINFO. Но почему-то этого не происходит в данном случае. Я попробовал даже отловить это уведомление, посылаемое контролом, с помощью подмены оконной процендуры. Но на выходе получаю буфер, заполненный каким-то мусором. Что ж за мистика такая...

не думаю что это мистика. такова уж защита у метаквотов. ничего не поделаешь.

число строк списка возвращается корректно, а вот содержимое не получить.

Такое только на двух вкладках - торговля/история

на новостях и т.д. все гуд.

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

o_o
Модератор
24105
o_o  

Мне кажется что создать внешнее самостоятельно приложение без помощи какого то скрипта в МТ (который бы получал с торговли данные) не получится.

Alexey Navoykov
4612
Alexey Navoykov  

Да, похоже что так... Жаль конечно... Мне просто нужно было узнать номер выделенного ордера в списке. Есть конечно и топорное решение этой задачи, но я надеялся сделать изящно и надёжно, без танцев с бубном.

o_o
Модератор
24105
o_o  
Meat:

Да, похоже что так... Жаль конечно... Мне просто нужно было узнать номер выделенного ордера в списке. Есть конечно и топорное решение этой задачи, но я надеялся сделать изящно и надёжно, без танцев с бубном.


если просто порядковый номер строки списка, то как-то еще выжать можно.

но вот получить инфу из строки и сам ордер... затык.

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий