OnInitDialog()
{
......
nd.cbSize = sizeof(NOTIFYICONDATA);
nd.hWnd = m_hWnd;
nd.uID = IDR_MAINFRAME;
nd.uFlags = NIF_ICON|NIF_MESSAGE|NIF_TIP;
nd.hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
nd.uCallbackMessage = WM_SHELLNOTIFY;
wcscpy(nd.szTip,_T("mydlg")); Shell_NotifyIcon(NIM_ADD,&nd);
}
//NOTIFYICONDATA nd我定义在了头文件里,做为这个窗口的成员对像
//窗口初始化后成功在托盘里增加了图标.但是我想通过一个按钮更换托盘图标.如下:OnBtnClicket1()
{
//Shell_NotifyIcon(NIM_DELETE, &nd);
nd.hIcon = AfxGetApp()->LoadIcon(IDI_ICON1);
nd.uID=IDI_ICON1;
nd.hWnd=m_hWnd;
Shell_NotifyIcon(NIM_MODIFY, &nd);}
//试过很多方法却始终不能修改图标,听别人说,先删掉图标,再修改.也不行.大家不知道有没有遇到这种情况
{
......
nd.cbSize = sizeof(NOTIFYICONDATA);
nd.hWnd = m_hWnd;
nd.uID = IDR_MAINFRAME;
nd.uFlags = NIF_ICON|NIF_MESSAGE|NIF_TIP;
nd.hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
nd.uCallbackMessage = WM_SHELLNOTIFY;
wcscpy(nd.szTip,_T("mydlg")); Shell_NotifyIcon(NIM_ADD,&nd);
}
//NOTIFYICONDATA nd我定义在了头文件里,做为这个窗口的成员对像
//窗口初始化后成功在托盘里增加了图标.但是我想通过一个按钮更换托盘图标.如下:OnBtnClicket1()
{
//Shell_NotifyIcon(NIM_DELETE, &nd);
nd.hIcon = AfxGetApp()->LoadIcon(IDI_ICON1);
nd.uID=IDI_ICON1;
nd.hWnd=m_hWnd;
Shell_NotifyIcon(NIM_MODIFY, &nd);}
//试过很多方法却始终不能修改图标,听别人说,先删掉图标,再修改.也不行.大家不知道有没有遇到这种情况
{
//Shell_NotifyIcon(NIM_DELETE, &nd);
nd.hIcon = AfxGetApp()->LoadIcon(IDI_ICON1);
nd.uID=IDI_ICON1;
nd.hWnd=m_hWnd;
Shell_NotifyIcon(NIM_MODIFY, &nd); } 调用错误
nd.uID=IDI_ICON1;
应该为(前一个相同)
nd.uID = IDR_MAINFRAME; //为托盘区数据的ID,不是资源ID;
该为
nd.uID = IDR_MAINFRAME;
//nd.uID=IDI_ICON1;