Q&A

  • 상태바를 제외한 나머지 영역만큼 최대화 하려면?
다음처럼 최대화를 구현해보았습니다



SendMessage(Handle,WM_SYSCOMMAND,SC_MAXIMIZE,0); 또는 WindowState := wsMaximized;



그런데 문제는 밑에 상태바를 모두 덮어 버린다는겁니다.

제가 원하는것은 상태바가 아래 있든 옆에있든 스크린상에서

상태바를 제외한 나머지 영역에 꽉차게 최대화 되길 바랍니다.

어떻게 해야할지..



2  COMMENTS
  • Profile
    파도랑 2001.12.11 00:34
    최대화는 윈도에서 알아서 처리하는 거라서 그거 가지고는 처리가 안될 듯 싶네요...



    이렇게 해보세요...



    최대화는 아니지만 상태 표시줄을 뺀 나머지 영역에 꽉 차게 폼을 그려줍니다...

    (크기 변경이나 이동이 가능한 게 탈이지만... --;)



    procedure TForm1.FormCreate(Sender: TObject);

    var

    ScreenRect: TRect;

    begin

    SystemParametersInfo(SPI_GETWORKAREA, 0, Pointer(@ScreenRect), 0);

    Left := ScreenRect.Left;

    Top := ScreenRect.Top;

    Width := ScreenRect.Right-ScreenRect.Left;

    Height := ScreenRect.Bottom-ScreenRect.Top;

    end;





    초보 wrote:

    > 다음처럼 최대화를 구현해보았습니다

    >

    > SendMessage(Handle,WM_SYSCOMMAND,SC_MAXIMIZE,0); 또는 WindowState := wsMaximized;

    >

    > 그런데 문제는 밑에 상태바를 모두 덮어 버린다는겁니다.

    > 제가 원하는것은 상태바가 아래 있든 옆에있든 스크린상에서

    > 상태바를 제외한 나머지 영역에 꽉차게 최대화 되길 바랍니다.

    > 어떻게 해야할지..

    >

  • Profile
    초보 2001.07.18 11:13
    답변 감사합니다...

    그런데 이 방법은 상태바를 제외한 영역에 꽉 차기는 하는데 폼의 크기나 이동이 가능합니다.

    이거 말고 일반 탐색기등을 최대화 했을때 처럼 구현하고 싶은거거든요...

    보통 캡션바 있는 윈도우 같은경우엔 제 의도데로 먹히지만

    캡션바를 없애거나 최소화,최대화,닫기버튼등을 false로 해주면 상태바를 덮어버려요...

    저는 캡션바를 없앤폼을 사용하거든요...

    혹시나싶어 캡션바 높이를 0으로 줘버리면 눈속임으로 먹힐까 싶어 검색해봤지만 그것 또한 없군요...

    아시는분 답변 바랍니다.







    파도랑 wrote:

    > 최대화는 윈도에서 알아서 처리하는 거라서 그거 가지고는 처리가 안될 듯 싶네요...

    >

    > 이렇게 해보세요...

    >

    > 최대화는 아니지만 상태 표시줄을 뺀 나머지 영역에 꽉 차게 폼을 그려줍니다...

    > (크기 변경이나 이동이 가능한 게 탈이지만... --;)

    >

    > procedure TForm1.FormCreate(Sender: TObject);

    > var

    > ScreenRect: TRect;

    > begin

    > SystemParametersInfo(SPI_GETWORKAREA, 0, Pointer(@ScreenRect), 0);

    > Left := ScreenRect.Left;

    > Top := ScreenRect.Top;

    > Width := ScreenRect.Right-ScreenRect.Left;

    > Height := ScreenRect.Bottom-ScreenRect.Top;

    > end;

    >

    >

    > 초보 wrote:

    > > 다음처럼 최대화를 구현해보았습니다

    > >

    > > SendMessage(Handle,WM_SYSCOMMAND,SC_MAXIMIZE,0); 또는 WindowState := wsMaximized;

    > >

    > > 그런데 문제는 밑에 상태바를 모두 덮어 버린다는겁니다.

    > > 제가 원하는것은 상태바가 아래 있든 옆에있든 스크린상에서

    > > 상태바를 제외한 나머지 영역에 꽉차게 최대화 되길 바랍니다.

    > > 어떻게 해야할지..

    > >