如何加背景图片(30分)

  • 主题发起人 主题发起人 东方
  • 开始时间 开始时间

东方

Unregistered / Unconfirmed
GUEST, unregistred user!
如何给mdiform加背景图片
 
http://www.gislab.ecnu.edu.cn/delphibbs/DispQ.asp?LID=130802
http://www.gislab.ecnu.edu.cn/delphibbs/DispQ.asp?LID=126034
 
http://www.gislab.ecnu.edu.cn/delphibbs/DispQ.asp?LID=137443
http://www.gislab.ecnu.edu.cn/delphibbs/DispQ.asp?LID=130802
 
http://www.gislab.ecnu.edu.cn/delphibbs/DispQ.asp?LID=196261
 
放个 image ,align设置为 alClient
 
我也正想问这个问题(如何给MDI主窗体加背景图片)!请指教.
email: lipingcool@263.net
 
写上这话就行:
self.brush.bitmap:=main.image1.Picture.Bitmap ;
其它就照不是mdi的做
 
比较简单,如下:
var
fclientinstance,fprevclientproc:tfarproc;

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;

procedure Tform1.FormActivate(Sender: TObject);
begin
fclientinstance:=makeobjectinstance(clientwndproc);
fprevclientproc:=pointer(getwindowlong(clienthandle,GWL_WNDPROC));
setwindowlong(clienthandle,GWL_WNDPROC,longint(fclientinstance));
end;
 
maming提出的解决方法我用过,是可行的.放在Formcreate中也行
 
加一个IMAGE组件选择CLIENT属性加入图片就行了!
 
先定义image1,然后在form.oncreate 事件中对image1进行赋值,(尺寸,图形).
在form.oncanvase事件中:
form1.Canvas.Draw(0,0,image1.Picture.Graphic);
Or
form1.Canvas.CopyRect(rect(0,0,screen.Height,screen.width),image1.Canvas,rect(0,0,image1.Height,image1.Width));
应可以实现。
 
真是八仙过海,各显神通啊!
 
时间太久,强制结束。 wjiachun
 
后退
顶部