使MDI窗口有一个背景图象或使它平铺

使MDI窗口有一个背景图象或使它平铺


确定你已在在你的主窗体对象中加入了下面的变量:

FClientInstance : TFarProc;

FPrevClientProc : TFarProc;

 

 

{ MDI的背景代码 }

procedure TMainForm.ClientWndProc(var Message: TMessage);

var

Dc : hDC;

Row : Integer;

Col : Integer;

begin

with Message do

case Msg of

WM_ERASEBKGND:

begin

Dc := TWMEraseBkGnd(Message).Dc;

// 在DC上平铺图象

for Row := 0 to ClientHeight div Image1.Picture.Height do

for Col := 0 to ClientWidth div Image1.Picture.Width do

BitBlt(Dc,

Col * Image1.Picture.Width,

Row * 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;

 

 

- 在你的主窗体的OnShow事件中加入以下代码:

 

// MDI背景平铺代码,与WndProc链接

FClientInstance := MakeObjectInstance(ClientWndProc);

FPrevClientProc := Pointer(GetWindowLong(ClientHandle,GWL_WNDPROC));

SetWindowLong(ClientHandle,GWL_WNDPROC,LongInt(FClientInstance));

 

- 现在你有一个背景了!

AddThis Social Bookmark Button

相关文档(Relevant Entries)
Delphi参考手册
delphi函数参考手册
Billenium Effects
关于文件操作集锦
DELPHI基础开发技巧
Delphi中拷贝文件
GetFileSize
关于文件流操作想法
WoW Powerleveling
Posted on June 19, 2006 9:54 AM | | | Comments (0) | | TrackBacks (0)

引用地址(TRACKBACKS)
 
TrackBack URL for this entry:
http://www.wujianrong.com/mt-tb.cgi/3605

发布评论(ADD YOUR COMMENTS)
 
感谢您参与评论;发表您的意见时请保持文章的相关性;不相关的或是单纯宣传的内容可能会被删掉。您的E-mail只是用来确认您发表的文章,不会出现在网页上。
Please keep your comments relevant to this blog entry. Email addresses are never displayed, but they are required to confirm your comments.

称呼(Name):      记住我的个人信息(Remember)
邮箱(Email):
网址(URL):
评论(Add your comments):

相关内容
广告计划