如何制作托盘图标?
2005-03-05 10:24
423 查看
想不想让自己的程序也和瑞星或金山词霸一样,启动后在托盘留下一个图标,以表示程序正在后台运行,如果你需要,且你还不知道如何下手,请您一步一步跟我走下来!
一、首先在*.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下调试通过!
一、首先在*.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下调试通过!
相关文章推荐
- 如何为应用程序添加托盘图标
- 如何通过托盘图标得到该所属进程
- 托盘图标的制作,点击与触发
- 如何制作自己的Visio图标
- VB6如何在托盘中写入应用程序图标
- winform如何最小化成托盘图标
- 网页制作小技巧------如何在浏览器地址栏中显示网站的图标?
- 使用C++builder的TTrayIcon制作系统托盘动态图标和气泡提示
- Win10如何显示系统托盘所有图标
- [第3天]favicon.ico 图标如何制作和设置?
- CentOS 7:如何显示系统托盘图标(systray)
- Ubuntu:如何显示系统托盘图标(systray)
- wince 6.0或5.0 windows mobile 6.5 trayicon 如何创建 系统托盘 图标
- 网页制作中如何自定义网页图标
- FCL小应用系列-----------如何实现托盘图标显示
- java程序如何实现右下角系统托盘图标显示
- 如何制作图标字体
- VC如何作出有动画效果的托盘图标
- 如何在托盘图标实现象window开始菜单中菜单左侧的图片效果
- 如何使用GTK让系统显示托盘图标