안녕하세요...
그동안 SetActiveWindow API로 이곳을 난잡(?)하게 만들었던 OHJANG 입니다.
SetActiveWindow API는 말 그대로 윈도우를 액티브 시키는 함수입니다.
그런데, 32Bit로 넘어오면서 그 동작이 제대로 되지 않더군요...
그래서 질문을 올리게 되었고...
음... 몇몇 고마우신 분들이 테스트를 해 주셨는데, 되신다는 분 안되신다는 분...
정말 저도 정리가 안됩니다...
지금까지의 결과는 다음과 같습니다.
우선 모든 분들이 SetActiveWindow API 대신 SetForeGroundWindow API를 권했습니다.
그런데... 테스트 결과 이 함수는 다음과 같이 반응하더군요...
윈도95에서는 정상적으로 SetActiveWindow API와 동일한 반응을 보였습니다.
그런데,
윈도98에서는 Alt+Tab로 화면을 이동시에는 정상 반응을 보였으나
마우스로 다른 폼을 클릭했을땐 태스크바의 아이콘이 반짝거리 뿐
폼이 액티브 되지 않았습니다.
박테리아님이 보내주신 소스에 의하면
1. SetForeGroundWindow(Self.Handle);
2. SetForeGroundWindow(Form1.Handle);
3. SetForeGroundWindow(Button3.Handle);
4. SetForeGroundWindow(Application.Handle);
5. Application.BringToFront;
윈도 95에서는 다섯가지 방법이 모두 정상 동작했습니다.
3번의 버튼 핸들을 주는 경우에도...
그런데, 윈도 98에서는 1,2,4,5의 경우는 마우스로 다른폼 이동시
태스크바의 아이콘이 깜빡거리기만 했습니다.
3번의 경우에는 아무런 반응을 보이지 않더군요...
이글을 보시는 분들도 한번 테스트 해 보셨으면 좋겠네요...
그리고 다른 방법이나 테스트 결과가 다르신분들도 말씀해 주시면 좋겠구요...
아무튼 여기까지 읽어주셔서 무척 감사하구요..
또, 다른 결과가 있으면 알려드릴께요...
그럼... 전... 이만....
|