MDI背景刷新问题 (100分)

G

goldon

Unregistered / Unconfirmed
GUEST, unregistred user!
我用一幅bmp作为主窗口的背景,程序运行时,背景完全显示正常,当我最大化时,图像也显示
正常,只是以前的图像没有刷新。该怎样刷新呢?
 
重新画一次。
 
这些方法我试了,还是不行。
我是在MDI主窗口MainForm中放置一个TImage控件,然后加载一幅BMP图像,直接加载为资源
。TImage控件的Strech我设为True,显示没有问题,只是放大,缩小时没有自动刷新,有重
影。
 
你是怎么放上的就怎么重画啊。
 
你用的是第三方控件,还是用的Tbitmap类来画的背影图?
 
我发现 midi 的主窗体 如果想通过
frm_main.color:=clblue; (frm_main 为midiform)
但是运行后 frm_main 的背景颜色不变
 
1、在窗体的Paint事件中画图。
2、在窗体的OnCreate事件中载入图像。
3、在窗体的OnClose事件中释放资源。
 
procedure TfrmMain.FillBackGround;
begin
with self.Canvas do
begin
Brush.Bitmap := image1.Picture.Bitmap;
FillRect(self.ClientRect);
end;
end;

procedure TfrmMain.FormPaint(Sender: TObject);
begin
FillBackGround;
end;
 
在ONpaint 内加上
Self.Canvas.FillRect(Rect(0,0,Self.clientWidth,Self.clientWidth));

试试吧
 
oldwinproc:=pointer(setwindowlong(clienthandle,gwl_wndproc,
cardinal(newwinproc)));
outcanvas:=Tcanvas.Create;
 
问题已经搞定,不用TImage控件,直接Draw就行了
为了简单结果还是偷不了懒
 
顶部