窗口重画的方法 有一个mdi应用的窗口,我想在主窗口中加一个背景图,主窗口有菜单栏、工具栏、状态栏。但我发现把图片stretch后,最大化显示时总要往下错一点,留下一个灰色条;把工具条的ontop属性去掉后问题虽解决,但出现图片藏到工具栏下面的缺点,好像窗口重画能解决这个问题,高手帮忙,给咱指点指点!多谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 刚看了一个朋友的话XP界面,没用菜单栏。用speedbutton和Popupmenu做了个假的菜单。不知道你的图是什么。你可以关注他的帖子! 我使用jpg图片的,你能告诉我贴子的位置吗? 你的问题没有碰见过,应该是你的控件的Align属性没有设置好。放置在上面的控件一般用alTop, 左边的用alLeft剩下的工作区一般用alClient。_________________________________________________________________ alTop | ________________________________________________________________| | alTop |________________________________________________________________| | | | | | | alLeft | alClient | | | | 可以先放一个Panel(alClient),然后 | | 再放一个Image(alClient) | | | | | | | | |----------------------------------------------------------------- 好像和你这个问题没有关系。 :)地址在这里。http://expert.csdn.net/Expert/topic/1819/1819796.xml?temp=.4915583 我再客户区加了一个PANEL,设为ALCLIENT,再他上面放IMAGE,出现灰色条的问题到解决了,但是挡着了子窗口,子窗口无法显示呀?该如何做呀?我想还是应该来重画的,能不能告诉我重画的用法呀? 再向大家描述一下我的做法:窗口为MDIFORM,MAXIMIZED————————————————————————————————菜单——————————————————————————————————工具条,采用TOOLBAR,ONTOP--------------------------------------------------------------放置一个IMAGE,图片为JPG格式,STRETCH.IMAGE控件ALCLIENT------------------------------------------------------STATUEBAR,ALBOTTOM--------------------------------------为什么运行后图片会向下错一些呢?留下一个灰色的背景条,该如何解决? 要不然, 你把图片抓给我。 我帮你分析分析。不知道你这种情况是在什么时候会有, 是窗体Show出来就这样,还是说有了一些窗体的事件。比如:移动,最大化,最小化,才有这种情况发生。 哦!给你我的Email: [email protected] 刚运行时就这样的,TO:Feng93017邮件已发出,多谢帮忙! 我做了一个Demo,已经用附件发给了你。去看看你的邮箱。 :) 还有一个小Bug,就是窗体在最大化和还原的时候,图片刷新有点问题。你把主窗体的Align属性设置为alClient,可以解决。 问题解决了。==============================================================================unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, jpeg, ExtCtrls, ComCtrls, ToolWin, Menus, UntWaxButtons;type TForm1 = class(TForm) MainMenu1: TMainMenu; FIle1: TMenuItem; Exit1: TMenuItem; StatusBar1: TStatusBar; ToolBar1: TToolBar; procedure Exit1Click(Sender: TObject); procedure FIle1Click(Sender: TObject); procedure FormPaint(Sender: TObject); private { Private declarations } procedure LoadPicture(AForm: TForm); procedure WMGetMinMaxInfo(var Msg: TWMGetMinMaxInfo); Message WM_GetMinMaxInfo; public end;var Form1: TForm1;implementationuses Unit2;{$R *.dfm}procedure TForm1.Exit1Click(Sender: TObject);begin Close;end;procedure TForm1.FIle1Click(Sender: TObject);var ChildForm: TForm2;begin ChildForm := TForm2.Create(Self); ChildForm.Show;end;procedure TForm1.FormPaint(Sender: TObject);begin LoadPicture(Self);end;procedure TForm1.LoadPicture(AForm: TForm);var BitMap: TJPEGImage;begin BitMap := TJPEGImage.Create; Try BitMap.LoadFromFile(ExtractFilePath(Application.ExeName) + '\样品.jpg'); Except Application.MessageBox('Picture file not found!', 'Information' MB_OK); exit; end; AForm.Canvas.StretchDraw(Self.ClientRect, BitMap); BitMap.Free;end;procedure TForm1.WMGetMinMaxInfo(var Msg: TWMGetMinMaxInfo);begin LockWindowUpdate(Self.Handle); LockWindowUpdate(0);end;end. 多谢edge了!http://expert.csdn.net/Expert/topic/1847/1847763.xml?temp=.4278376还有20分,你去接了吧,多谢了! 关于adotable问题 控件高手进来看看 100分换一个小例子~~ 如果保证多线程并发访问数据库的安全???? ( 真正解决. 再加工 300 ) 动态控件数组的应用! 怎么实现游戏中外挂弹出窗口! 无法启动应用程序。工作组信息文件丢失,或是已被其它用户独占式打开 用show的方式显示窗体,怎样才能知道窗体是否显示? 怎样调用 颜色公共对话框? 谢谢 关于将电子表格导入到ACCESS中后进行查询的问题 哪里有DELPHI5企业版下载?谢谢! 哪个大哥知道,哪里有delphi 5 的下载??给个地址就好了一定给分!急用
不知道你的图是什么。你可以关注他的帖子!
放置在上面的控件一般用alTop, 左边的用alLeft剩下的工作区一般用alClient。_________________________________________________________________
alTop |
________________________________________________________________|
|
alTop |
________________________________________________________________|
| |
| |
| |
alLeft | alClient |
| |
| 可以先放一个Panel(alClient),然后 |
| 再放一个Image(alClient) |
| |
| |
| |
| |
-----------------------------------------------------------------
地址在这里。
http://expert.csdn.net/Expert/topic/1819/1819796.xml?temp=.4915583
我想还是应该来重画的,能不能告诉我重画的用法呀?
————————————————————————————————
菜单
——————————————————————————————————
工具条,采用TOOLBAR,ONTOP
--------------------------------------------------------------
放置一个IMAGE,图片为JPG格式,STRETCH.IMAGE控件ALCLIENT
------------------------------------------------------
STATUEBAR,ALBOTTOM
--------------------------------------
为什么运行后图片会向下错一些呢?留下一个灰色的背景条,该如何解决?
不知道你这种情况是在什么时候会有, 是窗体Show出来就这样,还是说有了一些窗体的事件。比如:移动,最大化,最小化,才有这种情况发生。
TO:Feng93017
邮件已发出,多谢帮忙!
你把主窗体的Align属性设置为alClient,可以解决。
==============================================================================
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, jpeg, ExtCtrls, ComCtrls, ToolWin, Menus, UntWaxButtons;type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
FIle1: TMenuItem;
Exit1: TMenuItem;
StatusBar1: TStatusBar;
ToolBar1: TToolBar;
procedure Exit1Click(Sender: TObject);
procedure FIle1Click(Sender: TObject);
procedure FormPaint(Sender: TObject);
private
{ Private declarations }
procedure LoadPicture(AForm: TForm);
procedure WMGetMinMaxInfo(var Msg: TWMGetMinMaxInfo); Message WM_GetMinMaxInfo;
public end;var
Form1: TForm1;implementation
uses Unit2;{$R *.dfm}
procedure TForm1.Exit1Click(Sender: TObject);
begin
Close;
end;procedure TForm1.FIle1Click(Sender: TObject);
var
ChildForm: TForm2;
begin
ChildForm := TForm2.Create(Self);
ChildForm.Show;
end;procedure TForm1.FormPaint(Sender: TObject);
begin
LoadPicture(Self);
end;procedure TForm1.LoadPicture(AForm: TForm);
var
BitMap: TJPEGImage;
begin
BitMap := TJPEGImage.Create;
Try
BitMap.LoadFromFile(ExtractFilePath(Application.ExeName) + '\样品.jpg');
Except
Application.MessageBox('Picture file not found!', 'Information' MB_OK);
exit;
end;
AForm.Canvas.StretchDraw(Self.ClientRect, BitMap);
BitMap.Free;
end;
procedure TForm1.WMGetMinMaxInfo(var Msg: TWMGetMinMaxInfo);
begin
LockWindowUpdate(Self.Handle);
LockWindowUpdate(0);
end;end.
http://expert.csdn.net/Expert/topic/1847/1847763.xml?temp=.4278376
还有20分,你去接了吧,多谢了!