//****************************************************************************
//函数功能: 改变TRAY图标
//****************************************************************************
BOOL funcTrayToStart(HWND hwnd)
{
BOOL bSuccess;
NOTIFYICONDATA nid; nid.cbSize = sizeof(NOTIFYICONDATA);
nid.hWnd = hwnd;
nid.uID = iconID; //和你创建时的参数相同
nid.hIcon = AfxGetApp()->LoadIcon(IDI_NEWICON); //你的新图标ID
nid.uFlags = NIF_MESSAGE|NIF_ICON|NIF_TIP; strcpy(nid.szTip,"新图标来了"); nid.uCallbackMessage = WM_XXX; //你的自定义消息(用于回调处理) bSuccess = Shell_NotifyIcon(NIM_MODIFY,&nid); if(nid.hIcon) DestroyIcon(nid.hIcon);
return bSuccess;
}
//可惜只有20分
//函数功能: 改变TRAY图标
//****************************************************************************
BOOL funcTrayToStart(HWND hwnd)
{
BOOL bSuccess;
NOTIFYICONDATA nid; nid.cbSize = sizeof(NOTIFYICONDATA);
nid.hWnd = hwnd;
nid.uID = iconID; //和你创建时的参数相同
nid.hIcon = AfxGetApp()->LoadIcon(IDI_NEWICON); //你的新图标ID
nid.uFlags = NIF_MESSAGE|NIF_ICON|NIF_TIP; strcpy(nid.szTip,"新图标来了"); nid.uCallbackMessage = WM_XXX; //你的自定义消息(用于回调处理) bSuccess = Shell_NotifyIcon(NIM_MODIFY,&nid); if(nid.hIcon) DestroyIcon(nid.hIcon);
return bSuccess;
}
//可惜只有20分
2.然后在CMainFrame类的OnSetTimer函数中处理即可,无非是LoadIcon,SetIcon,等函数的调用.
3.处理过程中注意几个细节:当前图标的保存,与新图标的比较等.
4.当然你需要添加SetTimer函数的调用.