API实现添加系统托盘图标及其菜单

来源:互联网 发布:阿里云服务器磁盘分区 编辑:程序博客网 时间:2024/05/01 06:46

添加系统托盘图标
下面用winapi 实现


#define IDI_ICON 600                                //此处为图标ID,用于标识此图标

#define WM_NOTIFYICON WM_USER+5 //此处定义消息值

NOTIFYICONDATA nd;
 nd.cbSize = sizeof (NOTIFYICONDATA);
 nd.hWnd = hwnd; //窗体的句柄
 nd.uID = IDI_ICON;
 nd.uFlags = NIF_ICON|NIF_MESSAGE|NIF_TIP;
 nd.uCallbackMessage = WM_NOTIFYICON;
 nd.hIcon = hicon; //些处为图标句柄
 strcpy(nd.szTip, "图标提示");
 
 Shell_NotifyIcon(NIM_ADD, &nd);//添加图标用 NIM_ADD,

//修改图标类型用NIM_MODIFY,删除图标用NIM_DELETE


 

接收消息可以在消息回调函数中加入

case WM_NOTIFYICON:
   if ((wParam == IDI_ICON)&&(lParam == WM_RBUTTONDOWN)){
    //显示菜单
    showmenu(hDlg,LOWORD(wParam),HIWORD(wParam));
    
   }
   return TRUE;
   break;  


 

显示菜单部分

SetForegroundWindow(hwnd); //一定要加上这一句,hwnd 为社会分配句柄
 TrackPopupMenu(htmenu,0,pos.x,pos.y,0,hwnd,0);//htmenu 为HMENU(菜单句柄)

 

原创粉丝点击