Привет всем.
Использую архитектуру документ-вид, есть несколько видов, у каждого свое окно. В некоторый момент времени мне необходимо, чтобы окно перестало обрабатывать события от мышки и клавы, то есть "заморозилось" бы и разморозилось по нажатию любой клавиши.
Сейчас я размещаю в классе вида функцию disable() для окна и в обработчике нажатия клавиш enable(), и все работает как надо, но до тех пор, пока окно не потеряет фокус ввода.
Можно еще решить проблему подключением/отключением обработчиков событий, но хотелось бы обойтись без них и вообще не трогать класс окна, а весь код разместить в классе вида.
Есть какое-нибудь другое решение?
Передача событий от одного окна
Re: Передача событий от одного окн
1. Похожую функциональность выполняет wxWindowDisabler
2. Вручную фильтровать события при помощи методов wxApp::FilterEvent можно, но не уверен насколько оно будет работать эффективно в данном случае.
Открытие модальных окон как я понимаю не подойдет поскольку оно блокирует весь ввод, а не только к отдельному окну.
2. Вручную фильтровать события при помощи методов wxApp::FilterEvent можно, но не уверен насколько оно будет работать эффективно в данном случае.
Открытие модальных окон как я понимаю не подойдет поскольку оно блокирует весь ввод, а не только к отдельному окну.
Спасибо, использование wxWindowDisabler в дополнении к тому, что я описывал, решает проблему. Теперь окно не может потерять фокус ввода и все события благополучно добираются до вида.
Я думал решение будет в замене каким-либо образом обработчиков событий, но с wxWindowDisabler все решается даже лучше. И проще
Я думал решение будет в замене каким-либо образом обработчиков событий, но с wxWindowDisabler все решается даже лучше. И проще