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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.08.2009, 01:57   #1
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию Можно ли, зная ID контрола, заполучить его хэндл?

А то уж больно долго возиться с findwindowEX, да классы иногда одинаковые...
TwiX вне форума Ответить с цитированием
Старый 03.08.2009, 02:25   #2
Ntlegend
Форумчанин
 
Аватар для Ntlegend
 
Регистрация: 12.05.2007
Сообщений: 373
По умолчанию

а что за "ID" компонента?? своей программы, или чужой??
Перемен! - требуют наши сердца. Перемен! - требуют наши глаза.
В нашем смехе и в наших слезах, И в пульсации вен:
"Перемен!Мы ждем перемен!"
Ntlegend вне форума Ответить с цитированием
Старый 03.08.2009, 02:35   #3
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

чужой
Ну с помощью ИД, допустим кнопку можно нажать через WM_command
TwiX вне форума Ответить с цитированием
Старый 03.08.2009, 03:09   #4
Ntlegend
Форумчанин
 
Аватар для Ntlegend
 
Регистрация: 12.05.2007
Сообщений: 373
По умолчанию

насколько я помню через WM_command можна тока "нажать" пункт меню.. а кнопки можна нажимать через SendMessage.. шобы получить ID пункта меню нада знать его хендл.. так что..

Цитата:
Можно ли, зная ID контрола, заполучить его хэндл?
нет
Перемен! - требуют наши сердца. Перемен! - требуют наши глаза.
В нашем смехе и в наших слезах, И в пульсации вен:
"Перемен!Мы ждем перемен!"
Ntlegend вне форума Ответить с цитированием
Старый 03.08.2009, 09:54   #5
ov_lab
Пользователь
 
Регистрация: 24.07.2009
Сообщений: 13
По умолчанию

Цитата:
Сообщение от TwiX Посмотреть сообщение
А то уж больно долго возиться с findwindowEX, да классы иногда одинаковые...
Вот что нужно....

The GetDlgItem function retrieves a handle to a control in the specified dialog box.

Syntax

HWND GetDlgItem( HWND hDlg,
int nIDDlgItem
);
Parameters

hDlg
[in] Handle to the dialog box that contains the control.
nIDDlgItem
[in] Specifies the identifier of the control to be retrieved.
Return Value

If the function succeeds, the return value is the window handle of the specified control.

If the function fails, the return value is NULL, indicating an invalid dialog box handle or a nonexistent control. To get extended error information, call GetLastError.

Remarks

You can use the GetDlgItem function with any parent-child window pair, not just with dialog boxes. As long as the hDlg parameter specifies a parent window and the child window has a unique identifier (as specified by the hMenu parameter in the CreateWindow or CreateWindowEx function that created the child window), GetDlgItem returns a valid handle to the child window.

Последний раз редактировалось ov_lab; 03.08.2009 в 09:56.
ov_lab вне форума Ответить с цитированием
Старый 03.08.2009, 11:11   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Что-то я тоже не очень понял что автор ID назвал...
Вообще хендл это и есть своего рода идентификатор.
Автор, если не оустраивает эта функция напиши свою на основе GetWindow или примени EnumChildWindow
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.08.2009, 13:29   #7
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию Два окна без названия с одинаковыми классами

Какзахватить нужное?
TwiX вне форума Ответить с цитированием
Старый 03.08.2009, 13:32   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Захватить что? кого? на сколько суток? по какой статье?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.08.2009, 14:19   #9
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

Насколько я знаю, если окно не диалоговое, то ID особо не важны для проги, они могут совпадать у нескольких окон, так что это ненадёжно.
Somebody вне форума Ответить с цитированием
Старый 03.08.2009, 21:27   #10
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Stilet, там у сообщения заголовок есть =)
Somebody, у онка нет ID - он есть у контролов
TwiX вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как убить процесс зная его имя? One.Love Win Api 14 18.02.2012 14:31
Как нажать на Button в чужом приложении зная его HANDLE SeRhy Win Api 2 04.02.2009 13:43
Как сохранить Html страницу в *.txt зная его URL shaima Работа с сетью в Delphi 1 31.08.2008 17:46
Как зная хендл окна закрыть его SeRhy Общие вопросы Delphi 1 24.08.2008 11:02
Как завершить процесс, зная его имя Никки Win Api 6 14.01.2008 14:04