Q&A

  • 최상위 윈도우가 안돼요.... 흐흐흑...
안녕하세요....

먼저 메인폼을 띄웁니다...

물론 작업표시줄에도 안 나타나게

SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW); 를 사용했습니다.

그리고 그런다음 메인폼에서 메뉴폼을 Form2.Show로 띄웠습니다...

그래서 그런지 최상위 윈도우루 안뜹니다....

그런데 메뉴폼에서 다른 외부프로그램을 띄우고 그 외부프로그램이 종료할때

윈도우 메세지를 이용해서 메인폼에 메시지를 전달하면 메뉴폼이 최상위 윈도우루

나타나거든요...

처음 메뉴폼을 띄울때 최상위 윈도우로 띄우려면 어떻게 해야되나요????

꼭 좀 갈켜 주세요....

1  COMMENTS
  • Profile
    여영식 2001.09.03 18:06
    메인 폼의 FormStyle 프로퍼티를 fsStayOnTop으로 하고 하시면 안될까요?

    이때 StayOnTop 프로퍼티를 이용해서 최상위 윈도 처리를 구현하려면 다음과

    같은 문제가 있습니다. 한 어플리케이션에서 한개 이상의 stay on top이 있다면 폼의 stay on top기능은 무시 됩니다. 즉 다른 화면 아래로 숨어버리죠. 따라서 2개 이상의 폼에 stayontop기능을 이용하려면 SetWindowPos함수를 이용해야합니다.



    설정시

    SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE or SWP_NOACTIVATE)



    해제시

    SetWindowPos(Handle, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE or SWP_NOACTIVATE);



    이 SetWindowPos를 쓰는데도 제약이 따릅니다. StayOnTop을 하려는 각각의 폼을 dll로

    구현해서 정적으로 로딩해야합니다. LoadLibrary함수를 이용해서 사용하려면 물론 안

    되지요. 반드시 dll로, 그리고 정적으로







    델초보 wrote:

    > 안녕하세요....

    > 먼저 메인폼을 띄웁니다...

    > 물론 작업표시줄에도 안 나타나게

    > SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW); 를 사용했습니다.

    > 그리고 그런다음 메인폼에서 메뉴폼을 Form2.Show로 띄웠습니다...

    > 그래서 그런지 최상위 윈도우루 안뜹니다....

    > 그런데 메뉴폼에서 다른 외부프로그램을 띄우고 그 외부프로그램이 종료할때

    > 윈도우 메세지를 이용해서 메인폼에 메시지를 전달하면 메뉴폼이 최상위 윈도우루

    > 나타나거든요...

    > 처음 메뉴폼을 띄울때 최상위 윈도우로 띄우려면 어떻게 해야되나요????

    > 꼭 좀 갈켜 주세요....