|
MDI 메인이 Deactive이벤트에 topmost 코딩을 하느것이 아니라
Child 폼이 독립적으로 돌아갈때(Parent를 빠꾼후에...)
Child폼의 Deactive이벤트에 코딩해야 합니다.
sad-eyes 님이 쓰신 글 :
: : 장성호 님이 쓰신 글 :
: : TForm * 의 FormStyle을 fsStayOnTop으로 바꾸세요
: : 그러면 맨위에 올라올겁니다.
: :
: : 그래도 하다보면 안되는 경우가 가끔 있는데 이럴때는
: : 이땐 Form의 Deactivate 이벤트에 Topmost로 해주는 코딩을 넣으십시요
: : SetWindowPos( Handle, HWND_TOPMOST, Left, Top, Width, Height, SWP_NOACTIVATE );
:
: 저도 장성호님의 답변대로 처리해보았으나 안되더군요..
: 같은 App내에서의 원하는 차일드 윈도우에는 fsStayOnTop 속성이 적용됩니다.
: 즉, MDI내에서 차일드 윈도우가 여러개 존재할때 원하는 차일드에 fsStayOnTop 속성을 넣어주면
: 해당 차일드만 맨위로 올라옵니다.. 물론 MDI내에서만입니다. 그러나 다른 App가 액티브되면
: 제가 작성한 MDI 메인이 Deactive되면서 내부 차일드들이 fsStayOnTop 속성을 가지던 안가지던
: 혹은 SetWIndowPos를 Topmost로 햇던 안햇던 무조건 MDI메인 이하 모든 차일드 윈도우는
: 덩달아 Deactive되더군요...
: 따라서 MDI메인이 minimize되면 제가 플로팅윈도우로 만들어놓았던 차일드들도 덩달아 hide되버립니다.
: 저는 MDI메인은 minimize되어도 제가 만든 플로팅 윈도우는 바탕화면에 최상위로 남기를 바라는데요.
: 이게 그렇게 어려운 기능인가요? ㅜㅜ
: 볼랜드 넘 어려워요.. 으흐흑..
|