后来用Delete后再ADD可以,但是效果上不理想,不象是改变,而是删除后又加上去的。怎么解决的?
nid.cbSize = (DWORD)sizeof(NOTIFYICONDATA);
Shell_NotifyIcon(NIM_DELETE,&nid);//在托盘区添加图标
nid.uFlags = NIF_ICON|NIF_MESSAGE|NIF_TIP ;
nid.uCallbackMessage = WM_SHOWTASK;
nid.hWnd = this->m_hWnd;
if(nid.uID==IDI_TASK)
{
nid.uID = IDR_MAINFRAME; //自定义的消息名称
nid.hIcon = LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME));
}
else
{
nid.uID = IDI_TASK; //自定义的消息名称
nid.hIcon = LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_TASK));
}
strcpy(nid.szTip,"MonoBlog"); //信息提示条为“计划任务提醒”
//Shell_NotifyIcon(NIM_MODIFY,&nid);//在托盘区添加图标
Shell_NotifyIcon(NIM_ADD,&nid);//在托盘区添加图标
nid.cbSize = (DWORD)sizeof(NOTIFYICONDATA);
Shell_NotifyIcon(NIM_DELETE,&nid);//在托盘区添加图标
nid.uFlags = NIF_ICON|NIF_MESSAGE|NIF_TIP ;
nid.uCallbackMessage = WM_SHOWTASK;
nid.hWnd = this->m_hWnd;
if(nid.uID==IDI_TASK)
{
nid.uID = IDR_MAINFRAME; //自定义的消息名称
nid.hIcon = LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME));
}
else
{
nid.uID = IDI_TASK; //自定义的消息名称
nid.hIcon = LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_TASK));
}
strcpy(nid.szTip,"MonoBlog"); //信息提示条为“计划任务提醒”
//Shell_NotifyIcon(NIM_MODIFY,&nid);//在托盘区添加图标
Shell_NotifyIcon(NIM_ADD,&nid);//在托盘区添加图标
解决方案 »
- 请问如何将输入到对话框中的信息呈现到一个item中。就是类似listctrl中在icon上边显示文字
- OnSetFocus 问题。
- 如何用vc实现查找word文档中的内容.在线等待结果!立刻结分
- ODBC一个连接句柄上不能并发?
- DLL 的调试信息如何在一个窗口中输出?
- 高分求救 ?我是VC++初学者。用CDialogBar创建了一个工具栏,怎么实现这个工具栏上的控件的映射 ?
- ---------------------高分求winamp式的对话框---------------
- [求助]如何获取本机时间,并用自00:00:00 UTC, January 1, 1970的秒数来表示?
- 幼稚问题:如何得到CEdit控件的键盘输入事件?//-_-\\
- vs2010编译的模块和vc6编译的模块能混合使用吗
- 如何给编辑框赋值文字啊
- 如何得到一个关联文件的路径?高手进
我打算先做成数组,到时候调用。
Shell_NotifyIcon(NIM_MODIFY,&nid);