MFC OnKillFocus 처리...
안녕하세요.
wince 프로그램을 만드는중에 궁금한 부분이 있어 질문 드립니다.
제가 만드는 프로그램은 언제나 포그라운드 윈도우이면서 항상 포커스를 가지고 있도록 만들려고 합니다.
그래서 메인 WndProc의 WM_KILLFOCUS 메시지 안에서 SetForegroundWindow( hWnd );
함수를 호출하여 항상 이 프로그램이 최상위로 뜨게 해놨는데요...
win32api로 만든 어플은 제대로 동작 합니다.
현재 어플이 다른 윈도우에 의해서 포커를 잃기 직전에 WM_KILLFOCUS가 들어오기 때문 입니다.
그런데 MFC에서는 동작이 다르네요
WM_KILLFOCUS 메시지를 처리하는 OnKillFocus 메시지 핸들러가 포커를 잃기전에 호출 되는것이 아니라
현재 어플 위에 뜬 다른 윈도우가 사라져야 호출이 됩니다...(setfocus 될때 호출 되는듯 합니다)
그래서 포커스를 잃기 직전 SetForegroundWindow 할 수가 없으니 항상 포그라운드로 설정을 못합니다..
FormView를 이용한 sdi 프로젝트 이고요.
OnKillFocus 는 CMainFrame 클래스에서 재정의 했습니다.
혹시나 해서 app 클래스의 PreTranslateMessage를 재정의 해서
WM_KILLFOCUS 메시지를 처리 할려고 했는데 이곳에는 WM_KILLFOCUS 메시지 자체가 안들어 오네요
이건 도대체 왜 이런건가요
MFC에서도 항상 SetForegroundWindow시킬려면 어떻게 해야 하나요???
답변 부탁드리겠습니다.
댓글 달기