如何制作托盘图标?

来源:互联网 发布:网络机房温湿度标准 编辑:程序博客网 时间:2024/04/28 01:22

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

 一、首先在*.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下调试通过!

原创粉丝点击