2014-10-14 6 views
-2

알림 영역이있는 응용 프로그램이 있습니다. 알림을받을 때마다AnimateWindow win32 Api

::AnimateWindow(m_hWnd,duration,flags) 

으로 전화를 걸면 알리미가 제대로 작동합니다. 응용 프로그램을 닫으면 시스템 트레이에서 실행됩니다. 이 시간 동안 알림이 발생하면 화면에 포커스가 이동합니다. 그래서 내가 다른 응용 프로그램에 있다면, 나는 그 응용 프로그램에 초점을 잃고 다른 응용 프로그램을 클릭하여 다시 초점을 맞춰야합니다. 왜 AnimateWindow는 윈도우가 열려 있거나 닫혀 있는지에 따라 다르게 동작합니다. 운영체제에 통지에 초점을 두지 말라고하는 방법이 있습니까?

업데이트 : 설명이 명확하지 않다고 생각합니다. 애니메이션 창은 시스템 트레이에 알림을 표시하는 데 사용됩니다. 이것은 주 앱 창을위한 것이 아닙니다.

+1

'플래그 '로 무엇을 전달하고 있습니까? 'AW_ACTIVATE'는 윈도우를 활성화시킵니다. –

+0

'AW_ACTIVATE'를 전혀 사용하지 않습니다. 플래그는 슬라이드 애니메이션에만 사용됩니다. 또한 같은 코드를 두 번 사용할 때 동작이 다른 이유는 무엇입니까? Windows의 예상되는 동작입니까? – user59077

+1

잘 모르겠습니다. 하지만 창을 숨기면 애니메이션이 보이지 않을 것입니다. 그렇다면이 조건을 테스트하고 대신'ShowWindow'를 호출하는 것이 어떻습니까? –

답변

0

죄송합니다. 조사가 불완전합니다. 사실 CEF createBrowser()를 사용하여 알림을 만들었습니다. 분명히 그것은 초점을 훔치고 있었다.