Как получить уведомление о фокусе текстового поля? - PullRequest
1 голос
/ 18 января 2012

Использование сенсорного устройства в Windows 7 Windows отображает этот маленький индикатор сенсорной клавиатуры (при его вкладке будет отображаться прикосновение к экранной клавиатуре), когда вы перемещаете / фокусируете текстовое поле или поле ввода (Блокнот и т. Д.).

Я хочу написать приложение, которое получает уведомление, когда именно это происходит, текстовое поле (и т. Д.) Фокусируется (независимо от того, какое приложение).

Информированы ли приложения о фокусировке в других приложениях, нужно ли мнеперехватить что-нибудь?

Есть ли способ сделать это в c ++?

1 Ответ

2 голосов
/ 18 января 2012

Я считаю, что функция SetWinEventHook и, в частности, событие EVENT_OBJECT_FOCUS - это то, что вы ищете.

Из описания MSDN:

Объект получил фокус клавиатуры. Система отправляет это событие для следующих элементов пользовательского интерфейса: управление списком, строка меню, всплывающее меню, окно переключателей, управление вкладками, управление древовидным представлением и объект окна. Серверные приложения отправляют это событие для своих доступных объектов.

Параметр hwnd функции обратного вызова WinEventProc определяет окно, которое получает фокус клавиатуры.

...