本文整理自网络,侵删。
在uses中加types;
procedure TForm1.TreeView1CustomDraw(Sender: TCustomTreeView; const ARect: TRect; var DefaultDraw: Boolean); var btop, bLeft: Integer; rect: Trect; x, y, h: integer; begin x := GetScrollPos(sender.Handle, SB_HORZ); y := GetScrollPos(sender.Handle, SB_VERT); h := 17; rect := sender.ClientRect; rect.Bottom := rect.Top + sender.Height; btop := rect.Bottom - Image1.Picture.Bitmap.Height - y * h; bleft := rect.Right - Image1.Picture.Bitmap.Width - x; sender.Canvas.FillRect(Arect); rect := Types.rect(bleft - 1, btop - 1, bleft + Image1.Picture.Bitmap.Width + 1, bTop + Image1.Picture.Bitmap.Height + 1); if IntersectRect(rect, rect, arect) then BitBlt(sender.Canvas.Handle, Arect.Left, Arect.Top, Arect.Right - Arect.Left , Arect.Bottom - Arect.top , Image1.Picture.Bitmap.Canvas.Handle, Arect.Left - bleft, Arect.Top - btop, SRCCOPY); DefaultDraw := true; end;解决图片闪烁,移动: procedure TForm1.TreeView1Expanding(Sender: TObject; Node: TTreeNode; var AllowExpansion: Boolean); begin treeview1.Invalidate; end; procedure TForm1.TreeView1Collapsing(Sender: TObject; Node: TTreeNode; var AllowCollapse: Boolean); begin treeview1.Invalidate; end;还有2种方法给treeview添加背景图片:在formcreate事件中写:treeview.brush.bitmap:=image.picture.bitmap;在treeview的oncustomDraw事件中写: with treeview do begin Canvas.Brush.bitmap:=image.picture.bitmap; canvas.FillRect(ARect); end;
https://blog.csdn.net/zzflover/article/details/2945139
相关阅读 >>
更多相关阅读请进入《Delphi》频道 >>