Russian Qt Forum
Ноябрь 26, 2024, 08:53 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Решено: Отлов событий windows  (Прочитано 8488 раз)
zodiac
Гость
« : Сентябрь 30, 2009, 20:16 »

Имеется уже созданный QWidget. Как для него можно отлавливать windows-события? Пробовал "bool eventFilter( QObject *obj, QEvent *event );", но оно не ловит "QEvent::WinEventAct". Может можно как-нибудь переопределить метод "bool QWidget::winEvent ( MSG * message, long * result )" в памяти?
« Последнее редактирование: Октябрь 03, 2009, 12:59 от zodiac » Записан
Sergeich
Гость
« Ответ #1 : Сентябрь 30, 2009, 20:57 »

Попробуй  QApplication::winEventFilter ( MSG * )
Записан
zodiac
Гость
« Ответ #2 : Октябрь 01, 2009, 04:55 »

Мне надо из плагина это делать
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #3 : Октябрь 01, 2009, 06:53 »

в плагине можно воспользоватся указателем qApp
Записан

Юра.
zodiac
Гость
« Ответ #4 : Октябрь 01, 2009, 12:11 »

в плагине можно воспользоватся указателем qApp
а как им события-то ловить?
Записан
spectre71
Гость
« Ответ #5 : Октябрь 01, 2009, 14:26 »

Мне надо из плагина это делать
Ты имеешь ввиду, что QWidget в приложении, а обработку windows - событий необходимо делать в плагине? Если это так, то используй "bool QWidget::winEvent ( MSG * message, long * result )"  в приложении и передавай его вызов в плагин.
Записан
zodiac
Гость
« Ответ #6 : Октябрь 01, 2009, 15:13 »

Ты имеешь ввиду, что QWidget в приложении, а обработку windows - событий необходимо делать в плагине? Если это так, то используй "bool QWidget::winEvent ( MSG * message, long * result )"  в приложении и передавай его вызов в плагин.
угу. тогда только для удобства придется в QApplication фильтр ставить, чтоб уж для всех виджетов.
Записан
zodiac
Гость
« Ответ #7 : Октябрь 01, 2009, 19:01 »

Что-то ничего не получается ловить =/
Записан
ритт
Гость
« Ответ #8 : Октябрь 01, 2009, 21:19 »

нужно мессаг об активации окна ловить? или что конкретно?
Записан
zodiac
Гость
« Ответ #9 : Октябрь 02, 2009, 11:53 »

Ну вообще, нужно ловить "WM_DWMSENDICONICTHUMBNAIL" и отвечать на него
Записан
zodiac
Гость
« Ответ #10 : Октябрь 03, 2009, 12:29 »

Ура! Я заставил это дело работать %)

Код:
qApp->setEventFilter(w7itaskbar::winEvent);
...
затем:
bool w7itaskbar::winEvent(void *message , long *result)
{
MSG *msg = (MSG *)message;

if ( msg->message == WM_DWMSENDICONICTHUMBNAIL )
{
...
}

return false;
}

Вышло так: http://img198.imageshack.us/img198/4991/screen2qm.jpg
Записан
crackedmind
Гость
« Ответ #11 : Октябрь 03, 2009, 13:00 »

Не совсем понял что получилось Улыбающийся Можно поподробнее?

p.s. семерку еще не ставил
Записан
zodiac
Гость
« Ответ #12 : Октябрь 04, 2009, 07:34 »

Получилось из плагина менять превьюшку виджета Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.157 секунд. Запросов: 23.