CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  Windows SDK/API

如何能让程序在最小化时进入状态栏?

楼主sonyfan(门外汉)2005-07-22 16:35:28 在 C++ Builder / Windows SDK/API 提问

如何能让程序在最小化时进入状态栏?(就像一些杀毒软件一样) 问题点数:20、回复次数:8Top

1 楼FengSC(小猪快跑)回复于 2005-07-22 16:44:54 得分 0

使用BCB提供的TTrayIcon,在Samples里,BCB提供演示程序。Top

2 楼sonyfan(门外汉)回复于 2005-07-23 14:42:02 得分 0

请问在哪里看得到BCB提供演示程序?Top

3 楼rouqing(*冰雨&双子座奇缘*)回复于 2005-07-23 14:54:15 得分 20

 
   
   
  其他消息处理或者重新再放到托盘处的代码消息自己写写,比如当最小化窗口时,重新  
  放到托盘等等  
  ///  
  void   __fastcall   TfrmMain::SysMin(TWMSysCommand   &Msg)  
  {  
      if(Msg.CmdType==SC_MINIMIZE)  
      {  
      //   add   your   code  
      }  
      TForm::Dispatch(&Msg);  
  }  
  ///  
   
  project1.cpp  
   
  //---------------------------------------------------------------------------  
   
  #include   <vcl.h>  
  #pragma   hdrstop  
  //---------------------------------------------------------------------------  
  USEFORM("Unit1.cpp",   frmMain);  
  //---------------------------------------------------------------------------  
  WINAPI   WinMain(HINSTANCE,   HINSTANCE,   LPSTR,   int)  
  {  
                  try  
                  {  
                                    Application->Initialize();  
                                    Application->CreateForm(__classid(TfrmMain),   &frmMain);  
                                    Application->ShowMainForm=false;  
                                    Application->Run();  
   
  ...  
   
  unit1.cpp  
  //---------------------------------------------------------------------------  
   
  #include   <vcl.h>  
  #pragma   hdrstop  
   
  #include   "Unit1.h"  
  //---------------------------------------------------------------------------  
  #pragma   package(smart_init)  
  #pragma   link   "trayicon"  
  #pragma   resource   "*.dfm"  
  TfrmMain   *frmMain;  
  //---------------------------------------------------------------------------  
  __fastcall   TfrmMain::TfrmMain(TComponent*   Owner)  
                  :   TForm(Owner)  
  {  
  }  
  //---------------------------------------------------------------------------  
  void   __fastcall   TfrmMain::IconTray(TMessage   &Msg)  
  {  
      if(Msg.LParam==WM_LBUTTONUP   ||   Msg.LParam==WM_RBUTTONUP)  
          DelIcon();  
      TForm::Dispatch(&Msg);  
  }  
  //---------------------------------------------------------------------------  
   
  void   __fastcall   TfrmMain::AddIcon()  
  {  
      nid.cbSize=sizeof(TNotifyIconData);  
      nid.hWnd=Handle;  
      nid.uID=0;  
      nid.uFlags=NIF_MESSAGE   |   NIF_ICON   |   NIF_TIP;  
      nid.uCallbackMessage=WM_MENUMSG;  
      nid.hIcon=Application->Icon->Handle;  
      strcpy(nid.szTip,"My   TrayIcon   2005");  
      Shell_NotifyIcon(NIM_ADD,&nid);  
      ShowWindow(Application->Handle,SW_HIDE);  
  }  
  //---------------------------------------------------------------------------  
   
  void   __fastcall   TfrmMain::DelIcon()  
  {  
      ShowWindow(Application->Handle,SW_SHOW);  
      Application->Restore();  
      this->Show();  
      SetForegroundWindow(Handle);  
      Shell_NotifyIcon(NIM_DELETE,&nid);  
  }  
  //---------------------------------------------------------------------------  
   
  void   __fastcall   TfrmMain::FormClose(TObject   *Sender,   TCloseAction   &Action)  
  {  
      nid.cbSize=sizeof(TNotifyIconData);  
      nid.hWnd=Handle;  
      nid.uID=0;  
      Shell_NotifyIcon(NIM_DELETE,&nid);  
  }  
  //---------------------------------------------------------------------------  
   
  void   __fastcall   TfrmMain::FormCreate(TObject   *Sender)  
  {  
      AddIcon();  
      this->Hide();  
  }  
  //---------------------------------------------------------------------------  
   
  //---------------------------------------------------------------------------  
   
  #ifndef   Unit1H  
  #define   Unit1H  
  //---------------------------------------------------------------------------  
  #include   <Classes.hpp>  
  #include   <Controls.hpp>  
  #include   <StdCtrls.hpp>  
  #include   <Forms.hpp>  
   
  #define   WM_MENUMSG   WM_USER+100     //自定义的消息,  
  //---------------------------------------------------------------------------  
   
  class   TfrmMain   :   public   TForm  
  {  
  __published: //   IDE-managed   Components  
                  void   __fastcall   FormClose(TObject   *Sender,   TCloseAction   &Action);  
                  void   __fastcall   FormCreate(TObject   *Sender);  
  private: //   User   declarations  
  protected:  
                  BEGIN_MESSAGE_MAP  
                      MESSAGE_HANDLER(WM_MENUMSG,TMessage,IconTray)  
                  END_MESSAGE_MAP(TForm)  
  public: //   User   declarations  
                  __fastcall   TfrmMain(TComponent*   Owner);  
                  TNotifyIconData   nid;  
                  MESSAGE   void   __fastcall   IconTray(TMessage   &Msg);  
                  void   __fastcall   AddIcon();  
                  void   __fastcall   DelIcon();  
  };  
  ......  
   
  Top

4 楼sonyfan(门外汉)回复于 2005-07-25 14:43:51 得分 0

有没有再简单点的办法?  
  Top

5 楼psc88()回复于 2005-07-26 15:27:46 得分 0

upTop

6 楼rouqing(*冰雨&双子座奇缘*)回复于 2005-07-26 21:01:42 得分 0

使用BCB提供的TTrayIcon,在Samples里,有demo例子的,我的代码也不复杂啊Top

7 楼cdstarnet(星品网)回复于 2005-08-21 01:38:27 得分 0

比盗版还便宜,星品网(http://www.cdstar.net)1000多款最新最热门软件游戏和影视原装光盘4元价,看看有没有您想要的!Top

8 楼cdstarnet(星品网)回复于 2005-08-21 01:38:48 得分 0

比盗版还便宜,星品网(http://www.cdstar.net)1000多款最新最热门软件游戏和影视原装光盘4元价,看看有没有您想要的!Top

相关问题

  • 怎样让程序最小化后到状态栏中?************************************************************************
  • 如何使程序最小化时不出现在应用程序状态栏中?
  • 请问程序最小化到状态栏时,显示指定的文字,而不是程序名啊
  • 怎样把程序图标最小化到右下脚状态栏中(显示时间的那个栏)
  • 如何在窗体最小化时从状态栏上隐去,使他成为假的后台程序?
  • 紧急求救!程序最小化显示到系统状态栏图标的问题?怎么出错?
  • 启动程序时如何才可以最小化到托盘区(状态栏不显示)
  • 如何将窗体最小化到状态栏
  • 怎么样使-----最小化窗体到状态栏
  • 如何做到最小化, 在状态栏里显示, 任务栏不显示

关键词

  • .net
  • bcb
  • cpp
  • 消息
  • application
  • tfrmmain
  • 最小化
  • fastcall
  • nid
  • icontray

得分解答快速导航

  • 帖主:sonyfan
  • rouqing

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

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