Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.02.2011, 23:01   #1
Z3rique
Пользователь
 
Регистрация: 04.02.2011
Сообщений: 29
По умолчанию Как определить Handle дочернего окна?

Вообщем мне нужно найти "поле ввода текста" дочернего окна. Кто знает как?
Z3rique вне форума Ответить с цитированием
Старый 10.02.2011, 23:08   #2
wm_leviathan
Форумчанин
 
Аватар для wm_leviathan
 
Регистрация: 17.02.2010
Сообщений: 399
По умолчанию

тема и вопрос твои различны очень. хэндл окна это одно а поле текста это совсем другой хэндл это может быть как Edit или что то другое. определись что ты ищешь. если все таки окно то
function FindWindowEx(Parent, Child: HWND; ClassName, WindowName: PChar): HWND;
API функция http://www.delphiexpert.ru/view_winapi.php?id=207

Последний раз редактировалось wm_leviathan; 10.02.2011 в 23:13.
wm_leviathan вне форума Ответить с цитированием
Старый 10.02.2011, 23:11   #3
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

почитаи
http://www.cyberguru.ru/delphi-sourc...-mdi-okon.html
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 10.02.2011, 23:14   #4
asmodey1
Подтвердите свой е-майл
 
Регистрация: 19.12.2010
Сообщений: 808
По умолчанию

Цитата:
Сообщение от Z3rique Посмотреть сообщение
Вообщем мне нужно найти "поле ввода текста" дочернего окна. Кто знает как?
Да, наверное, все на форуме знают
Сто раз поднимался вопрос об использовании функции FindWindow и FindWindowЕх, по названию которой полезно произвести поиск по форуму...
asmodey1 вне форума Ответить с цитированием
Старый 10.02.2011, 23:21   #5
Z3rique
Пользователь
 
Регистрация: 04.02.2011
Сообщений: 29
По умолчанию

Искал, но не нашел то что нужно.
Z3rique вне форума Ответить с цитированием
Старый 10.02.2011, 23:23   #6
Z3rique
Пользователь
 
Регистрация: 04.02.2011
Сообщений: 29
По умолчанию

Мне нужно не показать/скрыть, а найти поле для ввода текста в чужом окне.
Z3rique вне форума Ответить с цитированием
Старый 10.02.2011, 23:41   #7
wm_leviathan
Форумчанин
 
Аватар для wm_leviathan
 
Регистрация: 17.02.2010
Сообщений: 399
По умолчанию

Цитата:
Сообщение от Z3rique Посмотреть сообщение
Мне нужно не показать/скрыть, а найти поле для ввода текста в чужом окне.
еще раз повторю тебе нужно знать что это за поле для ввода текста. это может быть как Edit так и Memo так и еще и другие доступные для редктирования элементы. можно конечно попробывать перебрать все элементы на дочерней форме (зная ее хэндл) и считать ее текст ну и сраввнить или просто посмотреть доступен он для редактирования или нет. но не факт что это это бдет нужный.
P.S. Stilet, Михалыч хэлп слов нет
wm_leviathan вне форума Ответить с цитированием
Старый 11.02.2011, 00:01   #8
asmodey1
Подтвердите свой е-майл
 
Регистрация: 19.12.2010
Сообщений: 808
По умолчанию

Мда-а-а...
В качестве примера - как получить набранный в Блокноте текст в свою пpогpамму:
Цитата:
function GetWindText(AHandle: THandle);
var
cb : DWord;
begin
cb := SendMessage(AHandle, WM_GETTEXTLENGTH, 0, 0);
SetLength(Result, cb);
if cb > 0 then
SendMessage(AHandle, WM_GETTEXT, cb+1, LParam(@Result[1]));
end;

procedure TForm1.Button1Click(Sender: TObject);
var
AHandle: THandle;
begin
AHandle := FindWindow('Notepad', nil);
Win32Check(AHandle <> 0);
AHandle := FindWindowEx(AHandle, 0, 'Edit', nil);
Win32Check(AHandle <> 0);
Memo1.Text := GetWindText(AHandle);
end;
Дальше предоставим ТС немного включить "моск"...
asmodey1 вне форума Ответить с цитированием
Старый 11.02.2011, 00:15   #9
wm_leviathan
Форумчанин
 
Аватар для wm_leviathan
 
Регистрация: 17.02.2010
Сообщений: 399
По умолчанию

из поста №8 обратите внимание на стороку
Код:
AHandle := FindWindowEx(AHandle, 0, 'Edit', nil);
там Edit как элемент для редактирования а AHandle хэндл материнского окна.
wm_leviathan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вызвать windowproc для дочернего окна bulldog5293 Общие вопросы Delphi 4 01.10.2010 14:17
Как обработать клик по границе дочернего окна? sVasilich Общие вопросы C/C++ 5 14.09.2010 11:46
Как узнать handle окна имея handle обного из его компонентов SeRhy Win Api 2 18.10.2009 19:31
Как получить handle главного окна, зная имя приложения? Altera Win Api 8 22.12.2008 18:52
Как имея handle окна узнать handle edit-a который находится в етом окне SeRhy Общие вопросы Delphi 1 20.07.2008 13:48