用Shell_NotifyIcon(NIM_ADD, &m_notifyicon)创建了托盘图标,但当MOuse指在该图标上方时,它便消失了,何解? 用Shell_NotifyIcon(NIM_ADD, &m_notifyicon)创建了托盘图标,但当MOuse指在该图标上方时,它便消失了,何解? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可能是m_notifyicon.hWnd 没有设置或虽然设置了,但无效。 myshell.cbSize=sizeof(NOTIFYICONDATA); myshell.hWnd=this->m_hWnd; myshell.uID=IDR_MAINFRAME; myshell.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP; myshell.uCallbackMessage=WM_USER+100; HICON hicon=AfxGetApp()->LoadIcon(RESOURCE); myshell.hIcon=hicon; if(hicon) DestroyIcon(hicon); char* buf; buf=new char [64]; wsprintf(buf,"%s",tip); strcpy(myshell.szTip,_T(buf)); switch(flag) { case 0: ::Shell_NotifyIcon(NIM_ADD, &myshell); break; case 1: ::Shell_NotifyIcon(NIM_MODIFY, &myshell); break; case 2: ::Shell_NotifyIcon(NIM_DELETE, &myshell); break; default : break; } 图标建立后,不用时要用API将它删除! 第一.你的应用程序已经退出。第二.你用代码删除了。第三.owner无效。 检查进程中是否还有你的程序?是不是真的关了?下面是我的关闭函数。void CTrayDlg::OnClose() { // TODO: Add your command handler code here NOTIFYICONDATA tnid; tnid.cbSize=sizeof(NOTIFYICONDATA); tnid.hWnd=AfxGetMainWnd()->m_hWnd; tnid.uID=IDR_MAINFRAME; Shell_NotifyIcon(NIM_DELETE,&tnid); CDialog::OnClose(); this->PostMessage(WM_CLOSE,0,0); }我想你可能是把这关闭写错地方了! [散发]十一倒计时,还有三天! CAD的二次开发 QueryDosDevice 映射盘符和设备名转换问题 组建鹦鹉党,与兔子党抗衡 内存画图的问题. 二值图象的重力中心的公式? 窗口间的访问问题? 有哪位可以提供树(不仅仅是二叉树)的类?---焦急等待中. StrToInt问题(不要笑我) 谁有CToolTipCtrl例子? 我开发的股票软件想用ACCESS做数据存储,请大家给点意见,这么大的数据量用它到底行不行?(分数不成问题,要多少给多少) VC中有没类似于JAVA开发中的JAXB,这样的东东呀???即:VC类可以与XML绑定的工具
m_notifyicon.hWnd 没有设置或虽然设置了,但无效。
myshell.hWnd=this->m_hWnd;
myshell.uID=IDR_MAINFRAME;
myshell.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP;
myshell.uCallbackMessage=WM_USER+100;
HICON hicon=AfxGetApp()->LoadIcon(RESOURCE);
myshell.hIcon=hicon;
if(hicon)
DestroyIcon(hicon);
char* buf;
buf=new char [64];
wsprintf(buf,"%s",tip);
strcpy(myshell.szTip,_T(buf));
switch(flag)
{
case 0:
::Shell_NotifyIcon(NIM_ADD, &myshell);
break;
case 1:
::Shell_NotifyIcon(NIM_MODIFY, &myshell);
break;
case 2:
::Shell_NotifyIcon(NIM_DELETE, &myshell);
break;
default :
break;
}
第二.你用代码删除了。
第三.owner无效。
{
// TODO: Add your command handler code here NOTIFYICONDATA tnid;
tnid.cbSize=sizeof(NOTIFYICONDATA);
tnid.hWnd=AfxGetMainWnd()->m_hWnd;
tnid.uID=IDR_MAINFRAME;
Shell_NotifyIcon(NIM_DELETE,&tnid); CDialog::OnClose();
this->PostMessage(WM_CLOSE,0,0);
}我想你可能是把这关闭写错地方了!