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

 

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

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

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

 
sanyooooook:

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

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

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

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


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

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

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

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

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

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

 

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

 

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

 
Meat:

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


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

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

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