我最初设置child窗口的WindowState为wsMaximized,可是这样闪烁很厉害,而且在tile后再打开一个child又都是最大了怎么办?
解决方案 »
- 事务处理
- 如何使用xsl 格式化xml数据?
- 请教一下KSAIY大大,关于某字串转换为另一字串的算法及代码
- DBGrideh选取问题
- 那位老兄帮我看看我的这段代吗?出错在什么地方?
- 进程A和被注入的进程B的DLL之间 如何通过自定义消息进行通讯
- delphi中的quickrep如何定义纸张
- 有人能够给我详细讲讲什么是“句柄”,它都有什么用处吗?
- ADO连接access数据库更新备注类型的字段,再post的时候报错
- 我想给自己的控件加一个ImageList和ImageIndex属性,选中ImageList后,在ImageIndex中显示图像列表。应如何做?
- 着急,求助!!!!!
- 做类似windows的工具栏用哪个控件?
ShowWindow(Child.Handle, SW_HIDE);
child.WindowState:=wsMaximized;
ShowWindow(Child.Handle, SW_show);
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, ComCtrls;type
TForm1 = class(TForm)
Panel1: TPanel;
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure WM_SIZE(var Msg: TMessage); message WM_SIZE;
procedure WMSysCommand(var Msg: TMessage); Message WM_SYSCOMMAND;
end;var
Form1: TForm1;implementation{$R *.DFM}procedure TForm1.WMSysCommand(var Msg: TMessage);
begin
if Msg.WParam = SC_MAXIMIZE then
begin
LockWindowUpdate(Handle);
Panel1.Align := alNone;
Memo1.Align := alNone;
end;
inherited;
end;procedure TForm1.WM_SIZE(var Msg: TMessage);
begin
if Msg.WParam = SIZE_MAXIMIZED then
begin
Panel1.Align := alClient;
Memo1.Align := alClient;
LockWindowUpdate(0);
end;
inherited;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
Panel1.Align := alClient;
Panel1.Color := clGray; //这样做是为了能看清楚一些,这还仅仅是一个小例子,如果Form上控件
//众多,则闪烁十分明显
Memo1.Align := alClient;
end;end.
看样子,你想用主菜单还想全屏呀.这样编写,我刚做了一个,如果用得上,拿去笑纳吧.
在主窗体中有菜单,然后把子窗体的align:=alclient;这样你可以看到他会充满屏.在主窗体中加入一个panel1也让它的align:=alclient;
然后在主窗体单击事件中这样写
procedure Tmain.n1click(Sender: TObject);
begin
if assigned(pub_form) then//pub_fom是一个公共变量,用来判断一个窗体是否创建,
pub_form.close;
form1:=Txjgl.Create(faPanel);
form1.Parent:=Panel1;
form1.Show;
pub_form:=form1;//最后还要把当前窗体赋值公共变量,以便下一个使用.
end;
form1是基于panel的,所以它会满屏,但不会盖住主菜单.:) 试一试吧
如果不行的话,再联系.
Set Form的属性WindowState := wsNormal;
然后在form 的FormActivate Event上加上这句代码:
ShowWindow(Self.Handle, SW_SHOWMAXIMIZED);应该可以解决Form闪烁的问提。
那把MDI窗口最大化是哪个消息!?