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

隐藏窗体

楼主blns(骑士007)2005-12-15 15:01:50 在 Delphi / Windows SDK/API 提问

我在主窗体mainfrm上打开一个窗体form1(对话框),然后又在form1上打开form2(对话框),现在我要把整个程序(所有打开的窗体)隐藏起来,通过热键和托盘图标恢复原状,可不可以实现? 问题点数:50、回复次数:3Top

1 楼ccrun(老妖)(www.ccrun.com)回复于 2005-12-15 15:35:52 得分 20

添加热键和托盘图标的代码略过,如何隐藏当前程序的所有窗体:  
   
  var  
          i:   integer;  
  begin  
          for   i   :=   Screen.FormCount-1   downto   0   do  
          begin  
                  Screen.Forms[i].Hide;  
          end;  
  end;  
  Top

2 楼zxf_feng(阿日)回复于 2005-12-15 18:16:45 得分 30

可以,你搜一下托盘,可以找到相关的例子,  
  我前段时间写过,给你一部分代码:  
          function   AddTrayIcon   :   Boolean;  
          procedure   OnIconNotify(var   Msg:   TMessage);   message   MY_MESSAGE;  
          function   ModifyTrayIcon(iconName,   Tip   :   string)   :   Boolean;  
          function   DeleteTrayIcon   :   Boolean;  
  var  
      nid:   TNotifyIconData;  
   
   
  function   TFrmMain.AddTrayIcon   :   Boolean;  
  begin  
      nid.cbSize   :=   sizeof(nid);   //   nid变量的字节数  
      nid.Wnd   :=   Handle;                   //   主窗口句柄  
      nid.uID   :=   1;                             //   内部标识,可设为任意数  
      nid.hIcon   :=   Application.Icon.Handle;   //   要加入的图标句柄,可任意指?  
      nid.szTip   :=   '正在运行';       //   提示字符串  
      nid.uCallbackMessage   :=   MY_MESSAGE;                   //   回调函数消息  
      nid.uFlags   :=   NIF_ICON   or   NIF_TIP   or   NIF_MESSAGE;   //   指明哪些字段有?  
   
      Result   :=   Shell_NotifyIcon(NIM_ADD,   @nid);  
  end;  
   
  function   TFrmMain.DeleteTrayIcon   :   Boolean;  
  begin  
      nid.cbSize   :=   sizeof(nid);   //   nid变量的字节数  
      nid.uID   :=   1;                             //内部标识,与加入小图标时的数一致  
      nid.Wnd   :=   Handle;                   //主窗口句柄  
      Result   :=   Shell_NotifyIcon(NIM_DELETE,   @nid);   //去掉小图标  
  end;  
   
  function   TFrmMain.ModifyTrayIcon(iconName,   Tip   :   string)   :   Boolean;  
  begin  
      nid.cbSize   :=   sizeof(nid);   //   nid变量的字节数  
      nid.uID   :=   1;                             //内部标识,与加入小图标时的数一致  
      nid.Wnd   :=   Handle;                   //主窗口句柄  
      nid.hIcon   :=   LoadIcon   (HInstance,   PChar(iconName));  
      lstrcpy(nid.szTip,   PChar(Tip));  
      Result   :=   Shell_NotifyIcon   (NIM_MODIFY,   @nid);  
  end;  
   
  procedure   TFrmMain.OnIconNotify(var   Msg:   TMessage);  
  var  
      pt   :   TPoint;  
  begin  
      if   Msg.LParam=WM_LBUTTONDOWN   then  
      begin  
          Self.Visible   :=   true;  
      end   else  
      if   Msg.LParam=WM_RBUTTONDBLCLK   then  
      begin  
          if   Application.MessageBox('真的要退出吗?','结束运行',   MB_YESNO)=IDYES   then  
              Application.Terminate;  
      end;  
  end;  
   
   
   
  Top

3 楼GARNETT2183(KingWolves (http://kevin-lu.blogspot.com))回复于 2005-12-15 18:22:35 得分 0

好像隐藏主窗体,其它子窗体也会隐藏的,托盘就直接用组件就OK了..  
  Top

相关问题

  • 如何隐藏主窗体?
  • 窗体自动隐藏!
  • 窗体显示及隐藏?
  • 主窗体隐藏问题
  • 如何隐藏主窗体
  • 如何隐藏web窗体?
  • 关于窗体隐藏
  • 怎样隐藏窗体
  • c#.net主窗体隐藏?
  • Delphi中调用子窗体后如何隐藏主窗体???

关键词

  • 窗体
  • nid
  • 隐藏
  • 托盘
  • 图标
  • nif
  • 打开
  • boolean
  • message
  • begin

得分解答快速导航

  • 帖主:blns
  • ccrun
  • zxf_feng

相关链接

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

广告也精彩

反馈

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