Q&A

  • MDIForm의 배경에 그림을 넣고 싶은데....
프로그램이 실행되었을때 첫화면인 mdi메인폼의 배경에 그림을 넣을 수 있는지 궁금합니다.
맨위에 MainMenu가 있고 그밑이 바탕인데 너무 허접해서리...
2  COMMENTS
  • Profile
    정성훈 2002.10.04 20:40
    이미지가 정사각형이어야 합니다...
    전 이쁜 김하늘을 넣어서 씀 ㅡ.ㅡ
    pravite
         FClientInstance,
         FPrevClientProc: TFarProc;
        procedure ClientWndProc(var Message: TMessage);

    procedure TF_Base_Main.FormCreate(Sender: TObject);
    begin
       FClientInstance := MakeObjectInstance(ClientWndProc);
       FPrevClientProc := Pointer(GetWindowLong(ClientHandle, GWL_WNDPROC));
       SetWindowLong(ClientHandle, GWL_WNDPROC, LongInt(FClientInstance));
    end;

    procedure TF_Base_Main.ClientWndProc(var Message: TMessage);
    var
       MyDC: hDC;
       Ro, Co: Word;
       Images : TImage;
    begin
       Images := TImage.Create( Application );

       Images.Picture.Bitmap := Kimhanul.Picture.Bitmap;

       with Message do
          case Msg of
             WM_ERASEBKGND:
             begin
                MyDC := TWMEraseBkGnd(Message).DC;
                for Ro := 0 to ClientHeight div Images.Picture.Height do
                   for Co := 0 to ClientWIDTH div Images.Picture.Width do
                      BitBlt(MyDC, Co * Images.Picture.Width, Ro * Images.Picture.Height,
                      Images.Picture.Width, Images.Picture.Height,
                      Images.Picture.Bitmap.Canvas.Handle, 0, 0, SRCCOPY);
                Result := 1;
             end;
          else
             Result := CallWindowProc(FPrevClientProc, ClientHandle, Msg, wParam, lParam);
          end;
    end;

  • Profile
    휴초보 2002.10.03 03:34

    자료실에 MDI 폼에 그림넣는 콤포넌트가 있어요.
    물론 bmp만 되는게 쬠 아쉽지만...
    쉽게 사용하실 수 있으실 거예요.