2010-01-23 4 views
0

WM_QUERYENDSESSION을 캐치하여 앱의 일부 데이터를 저장하려하지만 앱이 최소화되었을 때 사용자 로그 오프/시스템 재시작시이 메시지가 표시되지 않는 것으로 보입니다. 시스템 트레이. 나는 그것을 어떻게 잡을 수 있습니까?시스템 트레이로 최소화 할 때 WM_QUERYENDSESSION을받지 못함

감사합니다.

관련 코드 (잘하면 거기에 아무것도 마법, :)) :

내가 아마 여기에 게시 할 수 없습니다 타사 LIB (CodeJock)를 사용하고 트레이 아이콘에 대한
ON_WM_QUERYENDSESSION() 

BOOL CMainFrame::OnQueryEndSession() 
{ 
    AfxMessageBox(L"Are we hitting this?"); 

return FALSE; 
} 

, 일반적으로 메시지를 처리 ​​할 수있는 숨겨진 창을 만들지 만 필요한 경우 주 창은 단순히 ShowWindow (SW_HIDE)입니다. 어쩌면 그 숨겨진 창에서 그 메시지를 가로 채고 그것을 통과시켜야 할 필요가 있습니다.

+1

여러분의 코드를 볼 필요가 있다고 생각합니다. 특히 트레이 최소화 및 WM_QUERYENDSESSION 코드. –

+0

그래, 확실히 여기에 몇 가지 코드를 참조해야합니다. 필자는 MFC 응용 프로그램에서 IME 도우미 창에 의해 WM_QES 메시지가 중단되어 FALSE (고급 텍스트 서비스가 해제 됨)를 반환하지만 로그 오프가 작동하지만 응용 프로그램이 메시지를 보지 못한 경우를 본 적이없는 경우를 보았습니다. –

+0

응답 해 주셔서 감사합니다. 질문에 대한 설명을 추가했습니다. 물론 더 많은 코드를 제공하게되어 기쁩니다. – dennisV

답변

0

기본적으로 수정해야하는 제 3 자 클래스에서 먹습니다.

관련 문제