Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как получить handle фокусного объекта [D7, XP]


SamProf ©   (2006-08-12 16:44:00) 

Я знаю:
GetForegraudWindow - возвращает handle активного окна в винде
GetActiveWindow - возврашяет активное окно моего приложения
GetFocus - - хандл фокусного компонента на моей форме

А нужно получить хандле обьекта, активной в данной формы в системе!


Ketmar   (2006-08-12 20:35:00) [1]

> [2] SamProf ©   (12.08.06 16:57)
keybd_event() не лечит разве в этом случае?


Джо   (2006-08-12 19:59:00) [2]

> [6] begin...end ©   (12.08.06 19:45)
> Странно, но вчера этот вопрос уже поднимался...
> http://www.delphimaster.ru/cgi-bin/forum.pl?id=1155297332&n=5

Этот вопрос поднимался даже недели 3 назад:
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1153935200&n=18
(посты [84] и [88]).
И, вероятно, еще не раз будет "подниматься" :)


begin...end   (2006-08-12 19:45:00) [3]

Странно, но вчера этот вопрос уже поднимался...

http://www.delphimaster.ru/cgi-bin/forum.pl?id=1155297332&n=5


Джо   (2006-08-12 17:02:00) [4]

> [3] Джо ©   (12.08.06 16:58)

Сорри, форматирование уползло :(


> [4] Zeqfreed ©   (12.08.06 17:00)
> Мне больше по душе AttachThreadInput + GetFocus :)

Дело вкуса :0)


Zeqfreed   (2006-08-12 17:00:00) [5]

Мне больше по душе AttachThreadInput + GetFocus :)


Джо   (2006-08-12 16:58:00) [6]

Можно вот так:

var
ThreadId: THandle;
GuiThreadInfo: tagGUITHREADINFO;
Txt: array [0..1024] of Char;
begin
ThreadId := GetWindowThreadProcessId ( Handle_Окна );
if ThreadId = 0 then
  RaiseLastOSError;

GuiThreadInfo.cbSize := SizeOf(tagGUITHREADINFO);
if not GetGUIThreadInfo  (ThreadId,GuiThreadInfo) then
  RaiseLastOSError;

 //  в GuiThreadInfo.hwndFocus хранится хэндл нужного окна (если есть).
end;


SamProf   (2006-08-12 16:57:00) [7]

Вообще проблема такая - мне нада отправить месагу о нажатии клавиши активному объекту - я так понимаю нада найти хандл + SendMessage?


Zeqfreed   (2006-08-12 16:54:00) [8]

> [0] SamProf ©   (12.08.06 16:44)

AttachThreadInput + GetFocus.


Наверх

Титульная страница Поиск, карта сайта Написать письмо