呵呵,不想多讲。我做了一个简单的例子
ftp://ftp.cs.uestc.edu.cn/incoming/Program/fullScreen.zip
仅供参考;//MDI FORM
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, ToolWin, Menus;type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
ToolBar1: TToolBar;
StatusBar1: TStatusBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
file1: TMenuItem;
exit1: TMenuItem;
help1: TMenuItem;
about1: TMenuItem;
procedure ToolButton2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation
uses unit2;
{$R *.DFM}procedure TForm1.ToolButton2Click(Sender: TObject);
begin
if form1.MDIChildCount>0 then
begin
(form1.ActiveMDIChild as Tform2).fullscreen(true);
end;
end;end.//MDI Childunit Unit2;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls;type
TForm2 = class(TForm)
RichEdit1: TRichEdit;
procedure FormResize(Sender: TObject);
private
{ Private declarations }
public
procedure FullScreen(full:boolean);
{ Public declarations }
end;var
Form2: TForm2;
wState:TWindowState;
Resized:boolean=false;implementation{$R *.DFM}procedure TForm2.FullScreen(full:boolean);
begin
if full then
begin
wState:=WindowState;
FormStyle:=fsNormal;
WindowState:=wsMaximized;
Resized:=true;
end else
begin
Resized:=false;
FormStyle:=fsMDIChild;
WindowState:=wState;
end;
end;procedure TForm2.FormResize(Sender: TObject);
begin
if resized then
begin
fullScreen(false);
end;
end;end.
ftp://ftp.cs.uestc.edu.cn/incoming/Program/fullScreen.zip
仅供参考;//MDI FORM
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, ToolWin, Menus;type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
ToolBar1: TToolBar;
StatusBar1: TStatusBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
file1: TMenuItem;
exit1: TMenuItem;
help1: TMenuItem;
about1: TMenuItem;
procedure ToolButton2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation
uses unit2;
{$R *.DFM}procedure TForm1.ToolButton2Click(Sender: TObject);
begin
if form1.MDIChildCount>0 then
begin
(form1.ActiveMDIChild as Tform2).fullscreen(true);
end;
end;end.//MDI Childunit Unit2;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls;type
TForm2 = class(TForm)
RichEdit1: TRichEdit;
procedure FormResize(Sender: TObject);
private
{ Private declarations }
public
procedure FullScreen(full:boolean);
{ Public declarations }
end;var
Form2: TForm2;
wState:TWindowState;
Resized:boolean=false;implementation{$R *.DFM}procedure TForm2.FullScreen(full:boolean);
begin
if full then
begin
wState:=WindowState;
FormStyle:=fsNormal;
WindowState:=wsMaximized;
Resized:=true;
end else
begin
Resized:=false;
FormStyle:=fsMDIChild;
WindowState:=wState;
end;
end;procedure TForm2.FormResize(Sender: TObject);
begin
if resized then
begin
fullScreen(false);
end;
end;end.
我试了一下将MDI框架窗口中的TOOLBAR及菜单隐藏,并去掉标题栏,然后最大化,然后将Child窗口最大化,已达到了要求,不过Child窗口中如果TRichEdit中文字太多时,闪烁太严重,有没有办法解决?哪位做过这种活儿的请帖出来看一下。可以参考看看WPS2000的全屏幕切换,很干净。