托盘操作

来源:互联网 发布:linux 清空回收站 编辑:程序博客网 时间:2024/04/30 05:25

实现程序运行后自动最小化到托盘,代码简单,仅供参考

主要是完成了点击托盘界面恢复,以及点击最小化之后,界面及任务栏图标消失,右键托盘后有对应菜单

#include "toolbox.h"#include <cvirte.h>#include <userint.h>#include "demo.h"static int panelHandle;static int iconHandle;int iconCB(int iconHandle, int event, int eventData);void minimizeToTray(int panel);void resetFromTray(int panel);int main (int argc, char *argv[]){if (InitCVIRTE (0, argv, 0) == 0)return -1;/* out of memory */if ((panelHandle = LoadPanel (0, "demo.uir", PANEL)) < 0)return -1;DisplayPanel (panelHandle);minimizeToTray(panelHandle);RunUserInterface ();DiscardPanel (panelHandle);DetachTrayIconMenu (iconHandle);RemoveSysTrayIcon (iconHandle);return 0;}int CVICALLBACK panelCB (int panel, int event, void *callbackData, int eventData1, int eventData2){switch (event){case EVENT_GOT_FOCUS:RemoveSysTrayIcon (iconHandle);DetachTrayIconMenu (iconHandle);break;case EVENT_CLOSE:QuitUserInterface (0);break;case EVENT_PANEL_MINIMIZE:minimizeToTray(panel);break;}return 0;}/*--------------------------------------------------------------------------** Description:最小化该面板到托盘*----------------------------------------------------------------------------*/ void minimizeToTray(int panel){int index;char file[500];SetPanelAttribute (panel, ATTR_HAS_TASKBAR_BUTTON, 0);SetSystemAttribute (ATTR_TASKBAR_BUTTON_VISIBLE, 0);GetProjectDir(file);strcat(file,"\\hand.ico");InstallSysTrayIcon (file, "测试程序\n仅供装逼", iconCB, &iconHandle);AttachTrayIconMenu (iconHandle);InsertTrayIconMenuItem (iconHandle, "退出", &index);InsertTrayIconMenuItem (iconHandle, 0, &index);InsertTrayIconMenuItem (iconHandle, "显示主窗口", &index);SetPanelAttribute (panel, ATTR_VISIBLE, 0);}/*--------------------------------------------------------------------------** Description:从托盘中恢复*----------------------------------------------------------------------------*/ void resetFromTray(int panel){SetPanelAttribute (panel, ATTR_VISIBLE, 1);SetSystemAttribute (ATTR_TASKBAR_BUTTON_VISIBLE, 1);DisplayPanel (panel);}/*--------------------------------------------------------------------------** Description:托盘函数*----------------------------------------------------------------------------*/ int iconCB(int iconHandle, int event, int eventData){switch(event){case EVENT_MENU_ITEM:switch(eventData){case 1://对应 退出 索引QuitUserInterface (0);break;case 3://对应 显示主窗口 索引resetFromTray(panelHandle);break;}break;case EVENT_LEFT_CLICK:resetFromTray(panelHandle);break;}return 0;}


0 0
原创粉丝点击