2014-10-14 5 views
-2

У меня есть приложение с областью уведомлений. Всякий раз, когда я получаю уведомление, я называюAnimateWindow win32 Api

::AnimateWindow(m_hWnd,duration,flags) 

Когда окно приложения видно или минимизировано, уведомление прекрасно работает. Когда я закрываю приложение, он запускается в системном трее. В течение этого времени, если происходит уведомление, требуется фокус экрана. Поэтому, если я нахожусь в другом приложении, я теряю сосредоточенность на этом и должен нажать на другое приложение, чтобы вернуть фокус. Почему AnimateWindow ведет себя по-разному в зависимости от того, открыто или закрыто окно. Есть ли способ сказать ОС остановить фокус на уведомлении?

Обновление: Я думаю, что описание было не ясным. Окно анимации используется для отображения уведомления в системном трее. Это не для главного окна приложения.

+1

Что вы передаете для 'flags'? «AW_ACTIVATE» активирует окно. –

+0

Я вообще не использую 'AW_ACTIVATE'. Флаги предназначены только для анимации слайдов. Также почему поведение будет отличаться, когда я использую тот же код как раз. Это ожидаемое поведение окон? – user59077

+1

Не знаю. Но если ваше окно скрыто, анимация не будет видна в любом случае, так почему бы просто не проверить это условие и вместо этого вызвать «ShowWindow»? –

ответ

0

Извините, ребята, мое расследование было неполным. Фактически я использовал CEF createBrowser() для создания уведомления. Видимо, это крал фокус.