Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Как перехватить потерю фокуса user control'a? / 17 сообщений из 17, страница 1 из 1
20.07.2006, 11:28
    #33866281
KOlios
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перехватить потерю фокуса user control'a?
Создан пользовательский контрол.
В нем нет события loseFocus
При попытках создать свое событие с Event_ID ничего не выходит.
Как перехватить потерю фокуса user control'a?
...
Рейтинг: 0 / 0
20.07.2006, 14:35
    #33867254
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перехватить потерю фокуса user control'a?
Есть разные варианты решения
1. Следить за получением фокуса других обьектов (или родительского окна)
2. Найти нужное событие и подмапировать его (в зависимости от контрола)
3. Проверять tag и т.д. и т.п.
...
Рейтинг: 0 / 0
20.07.2006, 14:44
    #33867282
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перехватить потерю фокуса user control'a?
Ну например
PowerBuilder Specific * pbm_dwnkillfocus (Losefocus) PRIVATE
или WM_KILLFOCUS pbm_killfocus "
CBN_KILLFOCUS * pbm_cbnkillfocus (Losefocus) "
в зависимости от контрола
...
Рейтинг: 0 / 0
20.07.2006, 15:34
    #33867455
Dmitry.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перехватить потерю фокуса user control'a?
С pbm_* ничего не выйдет (приколы Custom Visual Object)
там даже other не отрабатывает...
...
Рейтинг: 0 / 0
20.07.2006, 17:03
    #33867853
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перехватить потерю фокуса user control'a?
KOliosСоздан пользовательский контрол.
В нем нет события loseFocus
При попытках создать свое событие с Event_ID ничего не выходит.
Как перехватить потерю фокуса user control'a?
А зачем?
...
Рейтинг: 0 / 0
20.07.2006, 17:44
    #33868038
Dmitry.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перехватить потерю фокуса user control'a?
ФилиппА зачем?
А зачем существуют все события? чтобы на них навесить какую-то функциональность.

Все равно Custom Visual Object для виндовс это окно, и почему там нельзя обрабатывать некоторые системные события (в частности wm_command) - непонятно.

Я считаю что это баг.

ЗЫ:
Если взять Spy++ мы увидим что потеря фокуса контролом внутри юзер обжекта триггерит событие WM_COMMAND с параметром NotificationCode = EN_SETFOCUS.
...
Рейтинг: 0 / 0
20.07.2006, 19:32
    #33868274
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перехватить потерю фокуса user control'a?
Dmitry. ФилиппА зачем?
А зачем существуют все события? чтобы на них навесить какую-то функциональность.
Какую функциональность? Я ж за этим и спрашиваю. Обычно за вопросом типа
"как перехватить потерю фокуса" кроется проблема в дизайне UI...
...
Рейтинг: 0 / 0
20.07.2006, 20:01
    #33868327
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перехватить потерю фокуса user control'a?
Dmitry.Все равно Custom Visual Object для виндовс это окно, и почему там нельзя обрабатывать некоторые системные события (в частности wm_command) - непонятно.В том то и дело, что нет, это не окно. Это набор визуальных объектов которые отрисовываются на реальном окне. Но сам этот "набор" хоть и имеет собственые функции-события, но окном с точки зрения виндов он не является.

Dmitry.Я считаю что это баг.Это не описаная в документации фича :)
...
Рейтинг: 0 / 0
20.07.2006, 20:12
    #33868346
Dmitry.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перехватить потерю фокуса user control'a?
White Owl Dmitry.Все равно Custom Visual Object для виндовс это окно, и почему там нельзя обрабатывать некоторые системные события (в частности wm_command) - непонятно.В том то и дело, что нет, это не окно. Это набор визуальных объектов которые отрисовываются на реальном окне. Но сам этот "набор" хоть и имеет собственые функции-события, но окном с точки зрения виндов он не является.

Если ты еще не в курсе, все обьекты, контролы в винде это windows (окно).
Чтобы создать кнопку через API, вызываем CreateWindow()...

Есть редкие иселючения
Java-Swing все контролы - картинка,
DataWindow - картинка за исключением текущего поля ввода.
...
Рейтинг: 0 / 0
20.07.2006, 20:27
    #33868369
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перехватить потерю фокуса user control'a?
Dmitry.Если ты еще не в курсе, все обьекты, контролы в винде это windows (окно). Чтобы создать кнопку через API, вызываем CreateWindow()...Все верно. Только Custom Visual Object в PowerBuilder это все равно не окно а набор окон (кнопки, надписи, разные другие контролы которые лежат на cvo). Но сам Custom Visual Object окном не является. PB берет все "нe-custom" визуальные объекты которые находятся на твоем cvo и кладет их напрямую на обычное окно на которое ты положил cvo.

Dmitry.Есть редкие иселючения
Java-Swing все контролы - картинка,
DataWindow - картинка за исключением текущего поля ввода.Угу, можешь добавить в этот список и эти самые Custom Visual Object PowerBuilder'а.
...
Рейтинг: 0 / 0
20.07.2006, 21:39
    #33868457
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перехватить потерю фокуса user control'a?
White OwlТолько Custom Visual Object в PowerBuilder это все равно не окно а набор окон (кнопки, надписи, разные другие контролы которые лежат на cvo). Но сам Custom Visual Object окном не является.
Чушь. Смотри картинку
...
Рейтинг: 0 / 0
20.07.2006, 21:40
    #33868459
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перехватить потерю фокуса user control'a?
Вот она
...
Рейтинг: 0 / 0
20.07.2006, 21:42
    #33868464
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перехватить потерю фокуса user control'a?
А вот пиббл с Custom Visual Objectом - с обработкой нотификации в wm_command окна, на которое помещён Custom Visual Object...
...
Рейтинг: 0 / 0
20.07.2006, 21:42
    #33868465
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перехватить потерю фокуса user control'a?
Пиббл :-)
...
Рейтинг: 0 / 0
21.07.2006, 09:47
    #33868875
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перехватить потерю фокуса user control'a?
Dmitry.DataWindow - картинка за исключением текущего поля ввода.
Само DataWindow - тоже окно.
...
Рейтинг: 0 / 0
21.07.2006, 18:40
    #33871284
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перехватить потерю фокуса user control'a?
ФилиппЧушь. Смотри картинкухм... действительно чушь.... Странно, когда-то я с этим ковырялся и не находил никаких хендлов.
.... пять минут копания в памяти и в архивах тестовых задач
Ага! это я с External Visual перепутал. Вот они тоже унаследованы от userobject а собственного хендла нету - на окне сразу лежит подгруженый из внешней dll объект.
...
Рейтинг: 0 / 0
21.07.2006, 19:48
    #33871373
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перехватить потерю фокуса user control'a?
White OwlАга! это я с External Visual перепутал. Вот они тоже унаследованы от userobject а собственного хендла нету - на окне сразу лежит подгруженый из внешней dll объект.
Вот это верно.
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Как перехватить потерю фокуса user control'a? / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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