mdi窗体贴图 (2000年12月29日).txt

来自「自己对DELPHI学习的一点体会」· 文本 代码 · 共 35 行

TXT
35
字号
MDI窗体贴图 (2000年12月29日) 

网友更新  分类:Win API   作者: maming(推荐)  推荐:maming   阅读次数:443  
(http://www.codesky.net)  

--------------------------------------------------------------------------------
private
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.FormCreate(Sender: TObject);
begin
FClientInstance := MakeObjectInstance(ClientWndProc);
FPrevClientProc := Pointer(GetWindowLong(ClientHandle, GWL_WNDPROC));
SetWindowLong(ClientHandle, GWL_WNDPROC, LongInt(FClientInstance));
end;  
 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?