如何做窗体背景?(在线等待) 放一个Image控件,它的Picture属性选你要的图片。把它的大小调到窗体一样大。其它控件都放到它上面。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 给我也发一个好吗 ? 多谢[email protected] 如果是普通窗体,请用楼上的各位方法,若试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; 最简单的方法: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. self.Brush.Bitmap:=image1.Picture.Bitmap; 文件夹同步怎么实现? 一个窗体调用问题? mscomm控件哪有下载啊?麻烦了 哪位大侠知道double浮点数据类型64位中每位所代表的格式含义 如何屏蔽要访问的远程服务器IP?求救!!! idftp的问题,头疼!!! 高手求救:我的猫为什么不能正常使用?(诊断检查时没有提示错误) 可以控制Tedit组件的内容吗? 请教三层系统中的错误处理? 一个痛苦的问题? 誰用過IDSMTP發送郵件?請進來一下. 用QRDBText或QRMemo做打印,如何实现多行显示和打印。
[email protected]
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;
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.