Текущий архив: 2002.09.30;
Скачать: CL | DM;
Вниз
фокус ввода Найти похожие ветки
← →
wal (2002-08-14 11:56) [0]Уважаемые Мастера, как узнать кому принадлежит фокус ввода?
Конкретнее - куда ушел бы символ, если бы была нажата кнопка на клавиатуре. Просто имеется девайс - работает под виндовзом, имеется сенсорный экран - эмулирует мышь. Хотелось бы отказаться от клавиатуры - и для этого пишется программный эмулятор, задача которого - при нажатии пальцем на экран (при этом происходит клик по буттону) вывести соответствующую буковку(циферку) в тот элемент ввода, который был активет до клика по буттону, и вернуть ему фокус ввода. Принимаются любые предложения. Спасибо.
← →
Игорь Шевченко (2002-08-14 12:13) [1]GetFocus, наверное
← →
wal (2002-08-14 13:59) [2]GetFocus работает только внутри своего приложения :(
← →
Игорь Шевченко (2002-08-14 14:04) [3]Тогда это забота win32k.sys - определять, куда пойдут данные.
Все равно, надо ведь будет драйвер для этого устройства писать, а правильно понимаю ?
← →
wal (2002-08-14 14:13) [4]
> Все равно, надо ведь будет драйвер для этого устройства
> писать, а правильно понимаю ?
Не совсем - можно считать, что это компьютер, IBM-совместимый, установлена WinXP, требуется изобразить программу - эмулятор клавиатуры (типа как в бесклавиатурных карманных компьютерах).
Основная проблема в том, что при нажатии на кнопку фокус ввода переходит к моей программе.
← →
Игорь Шевченко (2002-08-14 14:44) [5]AttachThreadInput не поможет ?
← →
Игорь Шевченко (2002-08-14 14:46) [6]У Рихтера был пример определения того, какое окно получит клавиатурный ввод
← →
Diamond Cat (2002-08-14 15:49) [7]Если не ошибаюсь то при переходе фокуса ввода от одного компонента к другому, проскакивают сообщения типа wm_killfocus и wm_setfocus (точно не помню какое нужно), и в каком-то из параметров параметров этих сообщений содержится хендл контрола потерявшего фокус, таким образом поставив системный хук можно узнать какой контрол был активен, если нужно могу слить пример (когда-то решал подобную задачу).
← →
Ученик (2002-08-14 16:16) [8]procedure TForm1.FormShow(Sender: TObject);
begin
SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_NOACTIVATE)
end;
← →
Ребенок Кирилл (2002-08-15 02:58) [9]Diamond Cat © Ты не мог бы слить заодно и мне?
← →
rhf (2002-08-15 05:40) [10]через getFocus и attachThreadInput
http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1029365322&n=0
← →
wal (2002-08-15 10:49) [11]Всем огромная благодарность и ящик виртуального пива :)
Вобщем спасибо.
Страницы: 1 вся ветка
Текущий архив: 2002.09.30;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.008 c