Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Окно в чужом приложении, написанном на MFC, Как достать строку из сетки в чужом окне 
:(
    Опции темы
miaucci
Дата 27.1.2009, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 26.1.2009

Репутация: нет
Всего: нет



Добрый день, господа!

Пишу приложение для Делфи 6 для работы с чужим приложением - с компьютерной картой.
На карте программно открыто окно класса #32770 (диалоговое окно, см. приаттаченную картинку). В нем открыто окошко (н-р 2Afx:00400000:8:00010011:01100060:00000000, в котором карта выводит список адресов из трех колонок, - 1) тип улицы 2)собственно название улицы 3) название населенного пункта, - это выборка из полной адресной базы по образцу (названию улицы), введенному мной из моего приложения в соседнее окошко класса Edit (н-р 1).
В общем, список выглядит как StringGrid. Дочерним окном у данного окна является окошко SysHeader32, где введены имена столбцов - это шапка списка (н-р 2а)...

Хендлы всех элементов я определяю. Проблема в том, чтобы однозначно найти строку списка, нужную мне. При этом в ручном режиме я просто перемешаюсь по списку и на нужной улице перехожу к выбору номера дома в ListBox н-р 3). Затем нажимаю ОК - адрес сформирован, окно закрывается.
Программно такой выбор сделать затруднительно, поскольку по типу улицы фильтрации нет, а среди списка улиц "ЛЕНИНСКИЙ" могут быть и проспекты, и переулки...
Довольно долго я считал этот список чем-то вроде ListView, но теперь понимаю, что скорее всего ошибался... 
Это самое окно Afx... ведет себя достаточно пассивно... Все, что мне удалось от него добиться - перемещение по списку через SendMessage -> KEYDOWN. Я долго крутил его оконными Spy'ами, - оно не посылает сообщений с параметрами, соответствующими элементам списка...

Я совсем запутался. Материала куча, примеров масса - но что-то все не то. 
Вот - попалась мне хорошая статья Rrader'а про StringGrid в чужом приложении. Мне же надо, перемещаясь по гриду, вытаскивать из каждой строки комбинацию "Тип-Улица-Город" и сравнивать со своим адресом. Но Rrader говорит, если я правильно понял, что его метод - только для VCL...

Посоветуйте, можно ли это решить для MFC? 


Это сообщение отредактировал(а) miaucci - 27.1.2009, 14:46

Присоединённый файл ( Кол-во скачиваний: 16 )
Присоединённый файл  _____MFC.jpg 179,46 Kb
PM MAIL   Вверх
RinOSpro
Дата 2.2.2009, 11:51 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Похоже на программу аля адреса и телефоны. 

Кажется что лучше ковырять БД из которой эти данные беруться чем вытаскивать их из StringGrid. Тема не раз поднималась но нормального решения так и небыло найдено. 

разные данные из чужих (TStringGrid, TListBox), опять про чужие приложения

Получить данные из Grid в чужом приложении
  Вверх
miaucci
Дата 2.2.2009, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 26.1.2009

Репутация: нет
Всего: нет



Цитата(RinOSpro @ 2.2.2009,  11:51)
Похоже на программу аля адреса и телефоны. 

Кажется что лучше ковырять БД из которой эти данные беруться чем вытаскивать их из StringGrid. Тема не раз поднималась но нормального решения так и небыло найдено. 

Добрый человек, я эти ссылки видал... Чего я только не видал! Две недели шерстил инет, - шуму много, а шерсти мало, как сказал черт, остригая кошку...

Ну, вот, мой вопрос в посте повис без ответа... Имхо, я неправильно спрашивал? 
Давай спрошу так: вообще - это в самом деле StringGrid?
Я ж говорю, я его считал "листвью"'ем, потом сообразил, что в этом случае и тип окна должон быть соответствующий - SysListView32. А он - см.мой пост! - контейнер Afx... и т.д. На канве которого, очевидно, и произрастает StringGrid.
Между прочим, два дня назад я выкопал обалденную софтину, - Screen OCR SDK. Для VB! Для C++! Для Делфи!!! Работает!!!!  smile 
То самое, с чем я морду разбил в кровь, - в готовом виде: выделяю на том самом окошке строку, или окно целиком, - хап! - и в буфере тот самый текст... Или в файле!  smile 
Работать - работает. Но триальная, <cut>! Для автоматизации в цикле не годится, на каждом захвате надо жать на кнопку в сообщении... <cut>

Короче, жизнь - как зебра: полоски, полоски, - черные и белые, а в конце все равно... это самое... <cut>!


M
Rrader
miaucci, будьте более сдержанным, не надо ругаться


Это сообщение отредактировал(а) Rrader - 2.2.2009, 18:28
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0780 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.