窗体上放一个Image控件,
Align属性设为alClient,
stretch属性设为true
Picture属性设为你想要的图片就可以了

解决方案 »

  1.   

      private
        FClientInstance,FPrevClientProc : TFarProc;
        procedure ClientWndProc(var Message: TMessage);
        { Private declarations }
      public
        { Public declarations }............
    .....
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      Width:=800;
      Height:=600;
      Top:=0;
      Left:=0;
    //  if FileExists(G_ImagesPath+'image'+IntToStr(G_WallPaper)+'.bmp') then
    //    ImageWallPaper.Picture.LoadFromFile(G_ImagesPath+'image'+IntToStr(G_WallPaper)+'.bmp');
      FClientInstance := MakeObjectInstance(ClientWndProc);
      FPrevClientProc := Pointer(GetWindowLong(ClientHandle, GWL_WNDPROC));
      SetWindowLong(ClientHandle, GWL_WNDPROC, LongInt(FClientInstance));
    end;procedure TForm1.ClientWndProc(var Message: TMessage);
    var
      MyDC : hDC;
      Ro, Co : Word;
    begin
      with Message do
      case Msg of
      WM_ERASEBKGND:
      begin
        MyDC := TWMEraseBkGnd(Message).DC;
        for Ro := 0 to ClientHeight div Image1.Picture.Height do
          for Co := 0 to ClientWIDTH div Image1.Picture.Width do
            BitBlt(MyDC, Co*Image1.Picture.Width, Ro*Image1.Picture.Height,
            Image1.Picture.Width, Image1.Picture.Height,
            Image1.Picture.Bitmap.Canvas.Handle, 0, 0, SRCCOPY);
            Result := 1;
          end;
          else
            Result := CallWindowProc(FPrevClientProc, ClientHandle, Msg, wParam, lParam);
      end;
    end;