//创建托盘图标 import win.ui; import win.ui.menu; /*DSG{{*/ var winform = win.form(text="托盘图标";left=0;top=0;right=330;bottom=156) winform.add( button={cls="button";text="创建托盘图标";left=97;top=37;right=248;bottom=68;z=1} ) /*}}*/ //下面创建托盘图标 import win.util.tray; winform.button.oncommand = function(id,event){ winform.tray = win.util.tray(winform) winform.tray.tip = "鼠标提示" //设置鼠标提示 //注意在单引号包含的转义字符串里只能以 '\n' 表示换行符,其他换行被忽略。 winform.tray.pop(' Win10 开始由操作系统的『专注』、应用程序的『通知』等设置 决定是否显示模幅提示或折叠消息到通知区。通知消息可使用 dotNet.toastListener 扩展库。' ,"托盘消息通知"); } winform.onMinimize = function(lParam){ winform.tray = win.util.tray(winform); winform.show(false); //隐藏窗口 return true;//阻击默认消息传递,取消最小化过程 } winform.onTrayMessage = { [0x205/*_WM_RBUTTONUP*/ ] = function(wParam){ //弹出托盘菜单以前,一定要前置主窗口中, //避免不点击菜单不会消失,父窗口隐藏也要这样做 win.setForeground(winform.hwnd,true) //参数 2 为 true 避免显示最小化窗口 /* 下面创建托盘弹出菜单。 如果程序要开机启动到托盘,最好在这里创建菜单,在用户点击前不要创建菜单, 避免系统启动时 DPI 缩放前创建的菜单字体偏小(出现这情况的机率很小)。 如果不想重复创建菜单最好写到一个库里,然后在这里 import 即可避免上述问题。 */ import win.ui.menu; winform.popmenu = win.ui.popmenu(winform);//创建弹出菜单 winform.popmenu.add('&open',function(id){ //在下面输入菜单响应代码 }); winform.popmenu.add();//分隔线 winform.popmenu.add('&exit',function(id){ winform.close() }) winform.popmenu.popup(); winform.popmenu.close(); }; [0x202/*_WM_LBUTTONUP*/] = function(wParam){ }; [0x203/*_WM_LBUTTONDBLCLK*/] = function(wParam){ }; [0x404/*_PARAM_DESTROY*/] = function(wParam){ }; [0x405/*_PARAM_CLICKED*/] = function(wParam){ }; } winform.show(true); win.loopMessage();