![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
узнать, находится ли фокус ввода в окне или нет... [D7]
istok © (2010-08-16 17:54:00)есть handle (hwnd) окна (вернее это edit контрол), нужно узнать, находится ли оно в фокусе ввода или нет
istok (2010-08-30 15:10:00) [1]ах-ах, читал же мсдн и пропустил это предложение(( спасибо!!!!!!!!
Leonid Troyanovsky (2010-08-30 14:45:00) [2]
> istok (30.08.10 13:54) [5]
http://msdn.microsoft.com/en-us/library/ms633506(VS.85).aspx
Note that you must set the cbSize member to sizeof(GUITHREADINFO)
before calling this function.
--
Regards, LVT.
istok (2010-08-30 13:54:00) [3]
> GetGUIThreadInfo Function
что-то она у меня не работает, возвращает false и 87ой getlasterror, что значит invalid parameter..:
procedure TForm1.btnRefreshClick(Sender: TObject);
var
lpgui: tagGUITHREADINFO;
begin
lbIEURL.Clear;
if GetGUIThreadInfo(2320, lpgui) then
begin
lbIEURL.Items.Add('active '+inttostr(lpgui.hwndActive) + ' ' + GetWndClass(lpgui.hwndActive));
lbIEURL.Items.Add('focus '+inttostr(lpgui.hwndFocus) + ' ' + GetWndClass(lpgui.hwndFocus));
lbIEURL.Items.Add('caret '+inttostr(lpgui.hwndCaret) + ' ' + GetWndClass(lpgui.hwndCaret));
end
else
lbIEURL.Items.Add(IntToStr(GetLastError));
значение thread id 2320 взял из process explorer, это же значение получаю через GetWindowThreadProcessId, т.е. такой поток точно есть в системе..
Leonid Troyanovsky (2010-08-17 07:51:00) [4]
> istok (16.08.10 17:54)
GetGUIThreadInfo Function
--
Regards, LVT.
Игорь Шевченко (2010-08-16 23:32:00) [5]GetFocus = hwnd
Anatoly Podgoretsky (2010-08-16 19:58:00) [6]> istok (16.08.2010 17:59:01) [1]
В первом приближение GetCaretPos
istok (2010-08-16 17:59:00) [7]PS: GetForegroundWindow возвращает хендл родительского окна, а мне надо знать, в фокусе ли конкретное поле ввода..