Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / KeyDown в Web Browser / 5 сообщений из 5, страница 1 из 1
05.01.2016, 15:54
    #39142403
Riska
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
KeyDown в Web Browser
В окне имеется объект MS Web Browser. Когда фокус находится в нем нужно перехватить нажатие на Escape.
Каким макаром?
...
Рейтинг: 0 / 0
06.01.2016, 12:32
    #39142667
AIS
AIS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
KeyDown в Web Browser
Riska ,
тоже когда-то искал решение для похожева случая, но так и не получилось.
Может еще это пригодится.

P.S. для меня этот вопрос ещё актуален. Если будут результаты, прошу поделится :)
...
Рейтинг: 0 / 0
18.01.2016, 13:40
    #39149596
Riska
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
KeyDown в Web Browser
AIS,
Делюсь.

На окне есть кнопка cb_return, которая закрывает ole и открывает DW на его месте. Короче, делает те действия, которые мы хотим получить при нажатии на Esc.

В ole_WebBrowser есть событие "commandstatechange". Оно срабатывает на все телодвижения. В нем пишем:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
any 	la_any_object
string ls_active

IF IsValid(This.Object.Document) THEN
	la_any_object = This.Object.Document.activeElement
	ls_active = string(la_any_object)
	IF Pos(ls_active, 'Input') > 0 THEN
		// Ничего... Происходит удаление текста в поле ввода
	ELSE
		cb_return.SetFocus()
	END IF
END IF



В самом окне в событии "key" пишем:
Код: sql
1.
2.
3.
4.
5.
6.
IF key = KeyEscape! THEN
   IF ole_WebBrowser.Visible THEN
	cb_return.Event clicked()
	RETURN
   END IF
END IF
...
Рейтинг: 0 / 0
18.01.2016, 14:42
    #39149709
AIS
AIS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
KeyDown в Web Browser
Riska ,
хотя это и не прямое решение, а эмуляция события, но думаю, что пригодится. Спасибо.
...
Рейтинг: 0 / 0
01.02.2016, 14:46
    #39160250
Riska
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
KeyDown в Web Browser
Дополнение.
В предыдущем примере перестает работать колесо мышки, когда мы находимся над ole_WebBrowser.
Вот это решает проблему (событие "other" на окне):
Код: sql
1.
2.
3.
4.
5.
6.
CHOOSE CASE Message.Number
   CASE 522 //WM_MOUSEWHEEL
  	IF ole_google_search.Visible THEN
		ole_google_search.SetFocus()
	END IF
END CHOOSE
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / KeyDown в Web Browser / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]