S sleepy Unregistered / Unconfirmed GUEST, unregistred user! 1999-10-14 #1 想用一行大师的Brush.bitmap的方法,但是一闪就没了。 请问有什么好办法吗?
S sleepy Unregistered / Unconfirmed GUEST, unregistred user! 1999-10-14 #4 panel是没有onpaint的呀,而且放在form的onpaint也是不行的。
C cAkk Unregistered / Unconfirmed GUEST, unregistred user! 1999-10-14 #7 >>如果要在StringGrid加上背景图片呢? 又回到老问题了,查以前的贴子.
M menxin Unregistered / Unconfirmed GUEST, unregistred user! 1999-10-14 #9 用image有时会有align的问题。还是用canvas吧 var mycanvas:tcanvas; bit:TBitmap; begin mycanvas:=TCanvas.Create; mycanvas.Handle:=getdc( Panel1.Handle); bit:=TBitmap.Create; //这几步你可以随便了,这里放了一个图 bit.LoadFromFile('c:/windows/clouds.bmp'); mycanvas.StretchDraw(rect(0,0,Panel1.Width,Panel1.Height),bit); mycanvas.Free; //一定记得释放 end;
用image有时会有align的问题。还是用canvas吧 var mycanvas:tcanvas; bit:TBitmap; begin mycanvas:=TCanvas.Create; mycanvas.Handle:=getdc( Panel1.Handle); bit:=TBitmap.Create; //这几步你可以随便了,这里放了一个图 bit.LoadFromFile('c:/windows/clouds.bmp'); mycanvas.StretchDraw(rect(0,0,Panel1.Width,Panel1.Height),bit); mycanvas.Free; //一定记得释放 end;
A Another_eYes Unregistered / Unconfirmed GUEST, unregistred user! 1999-10-14 #10 用brush.bitmap可以, 不过得截掉WM_ERASEBKGND消息. 所以最好继承TPanel做个控件. 在TPanel外面改很麻烦. 要用SetWindowLong修改掉Panel原来的wndproc, 替换成你的处理过程: if Message.Msg = WM_ERASEBKGND then Message.result := 1 else Message.result := CallWindowProc(原来的wndproc, panel.handle, Message.Msg, Message.WParam, Message.LParam);
用brush.bitmap可以, 不过得截掉WM_ERASEBKGND消息. 所以最好继承TPanel做个控件. 在TPanel外面改很麻烦. 要用SetWindowLong修改掉Panel原来的wndproc, 替换成你的处理过程: if Message.Msg = WM_ERASEBKGND then Message.result := 1 else Message.result := CallWindowProc(原来的wndproc, panel.handle, Message.Msg, Message.WParam, Message.LParam);
A Alarm Unregistered / Unconfirmed GUEST, unregistred user! 1999-10-17 #12 用Brush.Bitmap不行,还是直接在TPanel的Canvas上Draw比较好。