放一个Image控件,它的Picture属性选你要的图片。把它的大小调到窗体一样大。
其它控件都放到它上面。

解决方案 »

  1.   

    给我也发一个好吗 ?  多谢
    [email protected]
      

  2.   

    如果是普通窗体,请用楼上的各位方法,若试MDI窗体:procedure TMainFrm.DrawStretched;//拉伸
    var
      CR: TRect;
    begin
      GetWindowRect(ClientHandle, CR);
      StretchBlt(FDrawDC, 0, 0, CR.Right, CR.Bottom,
                 imgMain.Picture.Bitmap.Canvas.Handle, 0, 0,
                 imgMain.Picture.Width, imgMain.Picture.Height, SRCCOPY);
    end;procedure TMainFrm.DrawCentered;//局中
    var
      CR: TRect;
    begin
      GetWindowRect(ClientHandle, CR);
      with imgMain do
        BitBlt(FDrawDC, ((CR.Right - CR.Left) - Picture.Width) div 2,
                        ((CR.Bottom - CR.Top) - Picture.Height) div 2,
                        Picture.Graphic.Width, Picture.Graphic.Height,
                        Picture.Bitmap.Canvas.Handle, 0, 0, SRCCOPY);
    end;procedure TMainFrm.DrawTiled;//平铺
    var
      Row, Col: Integer;
      CR, IR: TRect;
      NumRows, NumCols: INteger;begin
      GetWindowRect(ClientHandle, CR);
      IR := imgMain.ClientRect;
      NumRows := CR.Bottom div IR.Bottom;
      NumCols := CR.Right div IR.Right;
      with imgMain do
        for Row :=0 to NumRows+1 do
          for Col :=0 to NumCols+1 do
            BitBlt(FDrawDC, Col*Picture.Width, Row*Picture.Height,
                            Picture.Width, Picture.Height,
                            Picture.Bitmap.Canvas.Handle, 0, 0, SRCCOPY);
    end;procedure TMainFrm.ClientWndProc(var Message: TMessage);
    begin
      case Message.Msg of
      WM_EraseBKGnd:
        begin
          CallWindowProc(FoldClientProc, ClientHandle, Message.Msg,
                         Message.WParam, Message.LParam);
          FDrawDC := TWMEraseBKGnd(Message).DC;
          DrawStretched;  //拉伸
          //DrawCentered;   //居中
          //DrawTiled;      //平铺
          Message.Result := 1;
        end;
      WM_VSCROLL, WM_HSCROLL:
        begin
          Message.Result := CallWindowProc(FOldClientProc, CLientHandle,
                                      Message.Msg, Message.WParam, Message.LParam);
          InvalidateRect(ClientHandle, nil, True);
        end;
      else
        Message.Result := CallWindowProc(FOldClientProc, CLientHandle,
                                      Message.Msg, Message.WParam, Message.LParam);
      end;
    end;procedure TMainFrm.FormCreate(Sender: TObject);
    begin
      FNewClientProc := MakeObjectInstance(ClientWndProc);
      FOldClientProc := Pointer(GetWindowLong(ClientHandle, GWL_WNDPROC));
      SetWindowLong(ClientHandle,GWL_WNDPROC,LongInt(FNewClientProc));
    end;
      

  3.   

    最简单的方法:unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs;type
      TForm1 = class(TForm)
        procedure FormCreate(Sender: TObject);
        procedure FormDestroy(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;
    var
      bmp : TBitmap;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);begin
      bmp := TBitmap.Create;
      bmp.LoadFromFile('D:\vsd\ToolBar-Background.bmp');
      Brush.Bitmap := bmp;
      
    end;procedure TForm1.FormDestroy(Sender: TObject);
    begin
      bmp.Free;
    end;end.
      

  4.   

    self.Brush.Bitmap:=image1.Picture.Bitmap;