![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
shuttle |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 230 Регистрация: 9.4.2008 Репутация: нет Всего: нет |
Есть две проги из себя в основном представляют несколько диалоговых окон. Как из диалогово окно одной проги перенести данные в диалоговое окно другой проги.
т.е. надо из текстовых полей диалогового окна одно пролги перенести данные в текстовые поля другой проги. Исходников разумеется нет. Какой функцией можо получить доступ к данным диалогового окна (текстовым полям, check box-ам, radio button-ам)? --------------------
|
|||
|
||||
Andrey44 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 8 Всего: 26 |
FindWindow()->GetWindowText()->FindWindow()->SetWindowText()
FindWindow() -------------------- ????? ??, ??????? ?????. ![]() |
||||
|
|||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 5 Всего: 211 |
FindWindowEx Это сообщение отредактировал(а) azesmcar - 19.5.2009, 08:36 |
|||
|
||||
Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 8 Всего: 26 |
azesmcar, ну-у-у можно еще использовать EnumChildWindows()
![]() -------------------- ????? ??, ??????? ?????. ![]() |
|||
|
||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 5 Всего: 211 |
||||
|
||||
Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 8 Всего: 26 |
Через FindWindow() находим главное окно, а потом через EnumChildWindows() перебираем все дочерние. ![]() -------------------- ????? ??, ??????? ?????. ![]() |
|||
|
||||
shuttle |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 230 Регистрация: 9.4.2008 Репутация: нет Всего: нет |
FindWindow() только HWND возвращает, а GetWindowText только заголовок. А как остальные данные получить?
--------------------
|
|||
|
||||
Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 8 Всего: 26 |
Ну не хочется через GetWindowText тогда посылай эдиту сообщение WM_GETTEXT и получай текст Не хочется через SetWindowText тогда посылай эдиту сообщение WM_SETTEXT и устанавливай новый текст Это сообщение отредактировал(а) Andrey44 - 20.5.2009, 07:58 -------------------- ????? ??, ??????? ?????. ![]() |
|||
|
||||
shuttle |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 230 Регистрация: 9.4.2008 Репутация: нет Всего: нет |
Смотрел через spy++, когда GetWindowText считывает из кнопки значение, то получаю название кнопки, когда с textbox-а, получаю только пустую строку, хотя строка там есть и spy++ ее показывает.
--------------------
|
|||
|
||||
Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 8 Всего: 26 |
Какое название?
А HANDLE ты правильные получаешь? -------------------- ????? ??, ??????? ?????. ![]() |
|||
|
||||
artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 5 Всего: 64 |
shuttle, вот пример. Вытягивает текст из окна Edit калькулятора и записывает туда свой текст:
Добавлено через 3 минуты и 51 секунду Такой косяк бывает. Не у всех эдитов можно получить текст с помощью GetWindowText. Да у того же калькулятора из примера выше. Сто процентный вариант - это отправить сообщение. Имхо -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
shuttle |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 230 Регистрация: 9.4.2008 Репутация: нет Всего: нет |
получаю текст в edit-e посылкой сообщения WM_GETTEXT. А как теперь получить имя(name) edit-а.
--------------------
|
|||
|
||||
artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 5 Всего: 64 |
Мне кажется, что никак. Хотя на 100% не уверен. Да и зачем оно нужно?... -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
А что, собственно, такое "имя эдита"? Нет у него никакого имени, строкового, по крайней мере.
-------------------- ... |
|||
|
||||
shuttle |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 230 Регистрация: 9.4.2008 Репутация: нет Всего: нет |
имя edit-а в MFC это типа IDC_EDIT1, IDC_EDIT2, ... . Текстовых полей очень много, хотелось бы знать, с какого конкретно поля считываю значение.
--------------------
|
|||
|
||||
Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 8 Всего: 26 |
Ты никак не сможешь получить. Это идентификатор ресурса.Так что я думаю что никак. -------------------- ????? ??, ??????? ?????. ![]() |
|||
|
||||
artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 5 Всего: 64 |
shuttle может тебе как-то помогут следующие функции:
EnumChildWindows() GetWindowRect() GetClientRect() GetClassName() Т.е. мне кажется, что единственный способ - это сравнивать позиции Edit'ов... Это сообщение отредактировал(а) artsb - 21.5.2009, 13:41 -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
mekhanikus |
|
|||
Вольноопределяющийся ![]() Профиль Группа: Участник Сообщений: 186 Регистрация: 16.6.2008 Где: Спасск-Дальний Репутация: 1 Всего: 1 |
Может функция GetDlgCtrlID поможет?
|
|||
|
||||
bugmenot |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 135 Регистрация: 3.7.2006 Репутация: 0 Всего: 1 |
shuttle, воспользуйся программой Window Handle Picker чтоб узнать ID своего EDIT-а:
http://www.codeguru.com/cpp/misc/samples/article.php/c1489 Потом вызывай:
Удачи ![]() --------------------
доска объявленийвсе о горных велосипедах |
|||
|
||||
shuttle |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 230 Регистрация: 9.4.2008 Репутация: нет Всего: нет |
С одним диалоговым окном разобрался. Второе - это текстовые поля на интернет странице, ID этих текстовых полней не показывает spy++ из VS и Window Handle Picker. Каким способом можно получить достум к таким текстовым полям.
--------------------
|
|||
|
||||
xvr |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
Видимо это не окна
|
||||
|
|||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |