CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

关于MDI程序的全屏幕问题。

楼主yeah()2000-07-05 22:51:00 在 Delphi / VCL组件开发及应用 提问

各位,请问如何能做到像WPS2000那样,在一个MDI程序中(Parent含有菜单、工具条),将一个含有TMEMO的子窗口做成全屏幕? 问题点数:50、回复次数:4Top

1 楼redice(雷帝)回复于 2000-07-06 01:44:00 得分 40

呵呵,不想多讲。我做了一个简单的例子  
  ftp://ftp.cs.uestc.edu.cn/incoming/Program/fullScreen.zip  
  仅供参考;  
   
  //MDI   FORM  
  unit   Unit1;  
   
  interface  
   
  uses  
      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   Child  
   
  unit   Unit2;  
   
  interface  
   
  uses  
      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.  
  Top

2 楼fyje(云中仙)回复于 2000-07-06 16:35:00 得分 10

将该form设置为mdichild,windowstate设置为最大化,放入TMEMO,设置其align属性为alclient即可Top

3 楼yeah()回复于 2000-07-06 22:54:00 得分 0

很感谢Redice的回答,但是此方法在恢复时Child窗口因连续Resize(我跟踪了一下,多达8、9次,连续地最大小化、还原),所以基本上不可用。  
  我试了一下将MDI框架窗口中的TOOLBAR及菜单隐藏,并去掉标题栏,然后最大化,然后将Child窗口最大化,已达到了要求,不过Child窗口中如果TRichEdit中文字太多时,闪烁太严重,有没有办法解决?哪位做过这种活儿的请帖出来看一下。可以参考看看WPS2000的全屏幕切换,很干净。Top

4 楼yeah()回复于 2000-08-13 23:34:00 得分 0

既然没有更好的答案,干脆把分分了吧。Top

相关问题

  • 如何使程序全屏幕
  • WIN2000下全屏幕DOS程序的窗口和鼠标怎么都不对了!
  • C#应用程序中如何实现全屏幕显示功能?
  • 在VC中如何实现全屏幕程序,像游戏一样,没有标题栏等等
  • 全屏幕截图
  • 如何制作全屏幕窗口
  • 还是全屏幕显示的问题?
  • 怎样才能把窗体全屏幕,!
  • 如何得到全屏幕高宽度?
  • 本页面怎么全屏幕?

关键词

  • ps2
  • 全屏幕
  • toolbutton
  • mdi
  • tform
  • wstate
  • tmenuitem
  • fullscreen
  • windowstate
  • 最大化

得分解答快速导航

  • 帖主:yeah
  • redice
  • fyje

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo