|
1. FindWindow를 사용하지 마시길..
다른 프로그램의 윈도우를 찾아서 맨앞으로 보내는것이 아니라
현재 프로그램을 맨앞으로 보내고자 하는데 왜 FindWindow를 쓰지요?
TForm1 클래스 내부 함수이면 그냥 Handle로 접근하면 됩니다.
SetForegroundWindow( Handle); //이렇게..
FindWindow는
윈도우가 최소화되어있거나 하면 FindWindow로 윈도우를 제대로 못찾습니다.
또한 아래처럼 classname으로 찾을경우에도 같은 class의 윈도우가 두개이상일경우에 문제가 있을수있고
caption으로 찾더라도 같은 caption인경우 엉뚱한 놈이 찾아질수 있겠죠..
2. 폼이 최소화 상태일때는 원상태로 복구한후에 맨앞으로 보내야 ....
정리하면...
Application->Restore();
SetForegroundWindow(Handle);
그럼..
하안인 님이 쓰신 글 :
: 프로그램이 뒤에 있거나 최소화 되어 있을 경우
:
: 화면의 맨앞으로 보내려면 어떻게 해야 하나요.
:
: ::SetForegroundWindow( ::FindWindow("TForm1", NULL ) );
: Application->BringToFront();
:
: 으로는 되지 않아서요.
|