Q&A

  • 작업표시줄에 프로그램 숨기는 방법은요?
ShowWindow(Application.Handle, SW_HIDE);

이렇게 사용하면 작업표시줄에 현재 창이 숨겨진다는거 알고 있습니다.

하지만 dll에서 만든 자식창을 현재의 프로그램에서 실행하게 되면

이 함수가 먹히지 않고 작업표시줄에 버젓이 나타나게 됩니다.

dll에서 폼을 만들어 화면상에 나타낼때 작업표시줄에 안보이게

할 수 있는방법이 없나요?...

1  COMMENTS
  • Profile
    최용일 2000.08.01 01:14
    안녕하세요. 최용일입니다.



    DLL과 메인프로그램은 각기 다른 Application이라는 전역변수를 가지고 있습니다. 이게



    다르기 때문에 DLL에 있는 폼을 부르면 일반 폼과는 달리 작업표시줄에 나타납니다.



    이걸 막을려면 DLL에 있는 Application의 핸들값을 메인프로그램의 Application 핸들



    값으로 맞추어주시면 됩니다.



    Dll에 아래와 같은 함수를 만들어서 폼을 만들기 전에 호출해 주시면 될것입니다.



    procedure SetDllAppHandle(App: TApplication);

    begin

    Application.Handle := App.Handle;

    end;



    메인프로그램에서 SetDllAppHandle(Application)과 같이 호출해 주심됩니다.



    ^^ 항상 즐코하세요.



    김종석 wrote:

    > ShowWindow(Application.Handle, SW_HIDE);

    > 이렇게 사용하면 작업표시줄에 현재 창이 숨겨진다는거 알고 있습니다.

    > 하지만 dll에서 만든 자식창을 현재의 프로그램에서 실행하게 되면

    > 이 함수가 먹히지 않고 작업표시줄에 버젓이 나타나게 됩니다.

    > dll에서 폼을 만들어 화면상에 나타낼때 작업표시줄에 안보이게

    > 할 수 있는방법이 없나요?...