Russian Qt Forum

Qt => Общие вопросы => Тема начата: zodiac от Сентябрь 30, 2009, 20:16



Название: Решено: Отлов событий windows
Отправлено: zodiac от Сентябрь 30, 2009, 20:16
Имеется уже созданный QWidget. Как для него можно отлавливать windows-события? Пробовал "bool eventFilter( QObject *obj, QEvent *event );", но оно не ловит "QEvent::WinEventAct". Может можно как-нибудь переопределить метод "bool QWidget::winEvent ( MSG * message, long * result )" в памяти?


Название: Re: Отлов событий windows
Отправлено: Sergeich от Сентябрь 30, 2009, 20:57
Попробуй  QApplication::winEventFilter ( MSG * )


Название: Re: Отлов событий windows
Отправлено: zodiac от Октябрь 01, 2009, 04:55
Мне надо из плагина это делать


Название: Re: Отлов событий windows
Отправлено: lit-uriy от Октябрь 01, 2009, 06:53
в плагине можно воспользоватся указателем qApp


Название: Re: Отлов событий windows
Отправлено: zodiac от Октябрь 01, 2009, 12:11
в плагине можно воспользоватся указателем qApp
а как им события-то ловить?


Название: Re: Отлов событий windows
Отправлено: spectre71 от Октябрь 01, 2009, 14:26
Мне надо из плагина это делать
Ты имеешь ввиду, что QWidget в приложении, а обработку windows - событий необходимо делать в плагине? Если это так, то используй "bool QWidget::winEvent ( MSG * message, long * result )"  в приложении и передавай его вызов в плагин.


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


Название: Re: Отлов событий windows
Отправлено: zodiac от Октябрь 01, 2009, 19:01
Что-то ничего не получается ловить =/


Название: Re: Отлов событий windows
Отправлено: ритт от Октябрь 01, 2009, 21:19
нужно мессаг об активации окна ловить? или что конкретно?


Название: Re: Отлов событий windows
Отправлено: zodiac от Октябрь 02, 2009, 11:53
Ну вообще, нужно ловить "WM_DWMSENDICONICTHUMBNAIL" и отвечать на него


Название: Re: Отлов событий windows
Отправлено: zodiac от Октябрь 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


Название: Re: Отлов событий windows
Отправлено: crackedmind от Октябрь 03, 2009, 13:00
Не совсем понял что получилось :) Можно поподробнее?

p.s. семерку еще не ставил


Название: Re: Решено: Отлов событий windows
Отправлено: zodiac от Октябрь 04, 2009, 07:34
Получилось из плагина менять превьюшку виджета :)