如何制作托盘图标?

想不想让自己的程序也和瑞星或金山词霸一样,启动后在托盘留下一个图标,以表示程序正在后台运行,如果你需要,且你还不知道如何下手,请您一步一步跟我走下来!

 一、首先在*.h文件中加入以下声明:
       #include
        public:
             TIcon *myIcon; 
              void virtual __fastcall IconClick(TMessage &Msg); 

             BEGIN_MESSAGE_MAP
                  MESSAGE _HANDLER (WM_USER+100,TMessage,IconClick)
             END_MESSAGE_MAP(TForm1)

 二、在*.cpp文件中加入以下代码:
         构造函数中加入以下代码:
         myIcon=new TIcon();
         TNotifyIconData IconData;
         myIcon->LoadFromFile("C:/data/icon.ico"); //ico图标位置
         IconData.cbSize=Sizeof(IconData);
         IconData.hwnd=Handle;
         IconData.uID=100;
         IconData.hIcon=myIcon->Handle;
         IconData.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP;
         IconData.uCallbackMessage=WM_USER+100;
         strcpy(IconData.szTip,"我的程序");
         Shell_NotifyIcon(NIM_ADD,&IconData); //增加托盘图标
         SetWindowLong(Application->Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW); //隐藏任务栏图标

         析构函数:
         TNotifyIconData IconData; 
         IconData.cbSize=Sizeof(IconData);
         IconData.hwnd=Handle;
         IconData.uID=100;
         Shell_NotifyIcon(NIM_DELETE,&IconData); //删除托盘图标
        delete myIcon;

        托盘图标的单击事件:
        void __fastcall TForm1::IconClick(TMessage &Msg)
        {
             TPoint po;
             if(Msg.LParam==WM_LBUTTONDBLCLK) //执行你的左键双击事件
             if(Msg.LParam==WM_RBUTTONDOWN) //右键弹出菜单
             {
                   GetCursorPos(&po); 
                   PopupMenu1->Popup(po.x,po.y);
            }
      }
  

     以下程序段在Win200/XP C++Bulider6.0下调试通过!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值