想在MDI子窗体上加入背景图片但是闪烁很厉害

Mit1208 2012-02-10 10:56:32
想在MDI子窗体(登陆窗体)上加入背景图片,可是闪烁的很厉害。

如果真的让客户使用的话,肯定不行!

百度了一段时间了,都是在MDI主窗体上加入背景图片,就是搜索不到在子窗体上的

现求方法。。。谢谢!
...全文
140 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
SQLDebug_Fan 2012-02-11
  • 打赏
  • 举报
回复
DelphiTeacher正解,试试他的方法
DelphiTeacher 2012-02-11
  • 打赏
  • 举报
回复
又是这种问题。。
子窗体的 WM_ERASEBKGND消息重新处理一下,使之不用默认颜色清除背景。
procedure WMEraseBKGnd(var Message:TWMEraseBKGnd);message WM_ERASEBKGND;

procedure TForm1.WMEraseBKGnd(var Message:TWMEraseBKGnd);message WM_ERASEBKGND;
begin
Message.Result:=1;
end;


基本上是这个原因引起的。
如果还有,那要考虑你的绘制方法了
DelphiTeacher 2012-02-11
  • 打赏
  • 举报
回复
StretchBlt这个方法了。。
Bitblt不行。。
Mit1208 2012-02-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 delphiteacher 的回复:]
又是这种问题。。
子窗体的 WM_ERASEBKGND消息重新处理一下,使之不用默认颜色清除背景。
procedure WMEraseBKGnd(var Message:TWMEraseBKGnd);message WM_ERASEBKGND;

procedure TForm1.WMEraseBKGnd(var Message:TWMEraseBKGnd);message WM_ERAS……
[/Quote]

能否经我一段重绘背景图片,并在窗体改变大小的时候使图片能够自动适应其窗体大小呢?

比如1440*900的背景图片,当窗体变小时,背景图片则能自动缩放为窗体大小,将图片显示完整!

效果就和Image1控件中的AutoSize属性为True,还有Stretch属性为True一样!

谢谢~!
lzg827 2012-02-10
  • 打赏
  • 举报
回复
楼主真勤奋,下面代码不知道能不能帮到你

var
tmpbk:tbitmap;//tmpbk为临时存储背景
// **** tmpt没有用, 去掉
begin
// **** inherited paint; 这句去掉
canvas.Lock ;
if forebmp.Empty then exit;
tmpbk:=tbitmap.Create ;
tmpbk.Width:=width;
tmpbk.Height:=height;
tmpbk.PixelFormat:=pf24bit;
bitblt(tmpbk.canvas.handle, 0, 0, width, height, canvas.handle, 0, 0, SRCCOPY);
{ 所有关于tmpt的操作换成上面一句就够了
tmpt:=tbitmap.Create ;
tmpt.Width:=parent.Width ;
tmpt.Height:=parent.Height;
tmpt.Canvas.Handle :=getdc(parent.Handle);//获得parent的hdc
//拷贝tmpt到tmpbk
tmpbk.Canvas.CopyRect(rect(0,0,tmpbk.Width ,tmpbk.height),tmpbk.canvas,boundsrect);
ReleaseDC(parent.Handle ,tmpt.Canvas.Handle );
tmpt.Free ; }
if (not fmaskbmp.Empty) then //掩模图片是否为空
copymask(forebmp,fmaskbmp,tmpbk,canvas)//合成前景、背景图片 根据掩模图片
else
canvas.StretchDraw(rect(0,0,width,height),forebmp);
canvas.Unlock ;
tmpbk.free; // 漏了这句
end;

Mit1208 2012-02-10
  • 打赏
  • 举报
回复
设置了窗体的Doublebuffered也一样。

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
  • GAME,图形处理/多媒体社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧