CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

关于窗口隐藏

楼主LeonSu(Leon.Su)2002-05-30 14:58:50 在 Delphi / VCL组件开发及应用 提问

我用了下面的函数使窗体从任务栏上消失了,但我最小化时,窗体居然给我跑到屏幕的左  
  下方呆着,我该如何做才能让它最小化时彻底从屏幕上消失掉!  
    SetWindowLong(Application.Handle,GWL_ExStyle,WS_EX_ToolWindow);  
  问题点数:100、回复次数:12Top

1 楼V_Lucky(最优解)回复于 2002-05-30 15:13:27 得分 0

ShowWindow(Application.Handle,SW_HIDE);Top

2 楼stanely(俺是邢她汉子)回复于 2002-05-30 15:39:21 得分 0

application.onminize  
  self.hideTop

3 楼Carfield(一只特别懒的猫)回复于 2002-05-30 17:08:36 得分 0

那个函数隐藏的是主窗体(Delphi中打开工程文件时所显示的窗体),子窗体不能隐藏.可使用ShowWindow(Application.Handle,SW_HIDE);隐藏所有的窗体.  
  Top

4 楼Danphel(Aleon)回复于 2002-05-30 17:13:04 得分 0

把窗体彻底从内存中释放,当启动窗体时,  
  Application.create(Form1,Tform1)jiu就是Top

5 楼LeonSu(Leon.Su)回复于 2002-06-01 10:53:31 得分 0

To:   stanely(俺是邢的汉子)    
  只能隐藏一次多次就不行了Top

6 楼njbudong(jinlingboy)回复于 2002-06-01 11:13:27 得分 0

先获得最小化的消息,然后hide就可以了;  
   
  type  
      TForm1   =   class(TForm)  
      private  
          {   Private   declarations   }  
          procedure   WMSysCommand(var   Msg:   TWMSysCommand);  
              message   WM_SYSCOMMAND;  
      public  
          {   Public   declarations   }  
      end;  
   
  var  
      Form1:   TForm1;  
   
  implementation  
   
  {$R   *.DFM}  
   
  procedure   TForm1.WMSysCommand;  
  begin  
      if   (Msg.CmdType   =   SC_MINIMIZE)   then  
      Application.ShowMainForm   :=   False;      
    else  
      inherited;  
  end;  
   
  Top

7 楼plainsong(短歌)()回复于 2002-06-01 11:38:37 得分 0

为主窗体写一个消息函数:  
   
      procedure   WMSysCommand(var   Message:   TWMSysCommand);message   WM_SYSCOMMAND;  
   
  procedure   TForm1.WMSysCommand(var   Message:   TWMSysCommand);  
  begin  
    if   (Message.CmdType   =   SC_MINIMIZE)   then  
      Visible   :=   False      
    else  
      inherited;  
  end;Top

8 楼slwqw(四大名捕之追杀令)回复于 2002-06-01 11:53:56 得分 0

搞不懂,彻底消失了,那你怎么恢复???Top

9 楼eulb(执子之手,与子偕老)回复于 2002-06-01 12:21:27 得分 100

你用  
  SetWindowLong(Application.Handle,GWL_ExStyle,WS_EX_ToolWindow);  
  是不让你的程序不在任务栏上出现  
  要知道真正的程序窗口是Application,任何的Form都可以看成是Application的子窗口,因此,你最小化Form就象最小化了一个子窗口,所以它就缩小到左下角了  
  所以,要实现真正的最小化,只要application.minimize就可以了  
  而不是调用form的minimize!Top

10 楼ihihonline(潇潇->戒烟)回复于 2002-06-01 12:29:09 得分 0

够啦、够啦~  
  俺是来灌水的,没成想,落后啦~Top

11 楼qrlvls( 空 气 )回复于 2002-06-01 12:34:45 得分 0

我灌,我再灌Top

12 楼GreenWaterBlueSky(碧水蓝天)回复于 2002-06-01 12:49:51 得分 0

同意njbudong(南京不懂)      
  不过建议  
      Application.ShowMainForm   :=   False;      
      改为:Application.Minimize;  
  Top

相关问题

  • 隐藏DOS窗口?
  • 如何隐藏mdi窗口?
  • 怎样隐藏workspace 窗口?
  • 隐藏窗口的问题
  • 怎样隐藏窗口?
  • 关于隐藏窗口??
  • 如何显示隐藏的窗口?
  • 急!窗口的隐藏问题。
  • VC隐藏应用程序窗口
  • 窗口显示隐藏问题

关键词

  • 函数
  • application
  • 窗体
  • wmsyscommand
  • 隐藏
  • twmsyscommand
  • tform1
  • 最小化
  • hide
  • procedure

得分解答快速导航

  • 帖主:LeonSu
  • eulb

相关链接

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

广告也精彩

反馈

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