Q&A

  • MDI에 관한 질문입니다.
다들.고생 많으십니당....
MDI메인폼에...버튼과...메모..이런게 있읍니다..
근데..차일드폼을 띠우면..차일드폼위로 메인폼의 버튼과 메모등이 나타나내욤 ㅡㅡㅋ
메인폼의 컴포넌트가 차일드폼을 띠우면 뒤쪽에 안보이게 하는방법은 없나요??  
2  COMMENTS
  • Profile
    최용일 2003.11.08 20:57
    안녕하세요. 최용일입니다.

    메인폼의 클라이언트 영역을 재정의 하시면 됩니다. 재정의할때 클라이언트 영역에 포함되지 않는 부분은 OnPaint이벤트에서 다시 그려주시거나 판넬(TPanel)같은 컴포넌트를 그 위치에 놓으시면 보기에 좋겠죠...

    type
        TfrmMain = class(TForm)
        protected
            function GetClientRect: TRect; override;
        end;

    function TfrmMDIMain.GetClientRect: TRect;
    begin
        // 여기에서 MDIChild폼이 위치할 영역을 지정해주시면 됩니다.
        Result := inherited GetClientRect;
        Result.Top := Result.Top + 100;
    end;

    ^^ 항상 즐코하세요...

  • Profile
    신승욱 2003.11.10 17:33
    답변 감사드립니다..
    근데요..위의 소스는 클라이언트영역을 특정부분으로 한정시켜주는것같은데요
        Result := inherited GetClientRect;
        Result.top := Result.top + 100; <- 요부분에 지정한 상위쪽에는 절대로 클라이언트폼이 이동하지 않더군요..
    제가 하고싶은건..클라이언트영역은 원래대로 똑같이 하면서..메인폼의 컴포넌트들이 차일드폼 뒤로 숨게하고 싶은거거든요..
    제가 이해를 잘못했나요?