使用vc,如何实现出现在任务栏中的图标可以闪烁,或者换图标,类似qq.
解决方案 »
- 关于DEBUG的问题
- 关于指针参数传值的问题。。。。。。
- 如何结束一个自动开启的隐藏的子线程!!!
- 求助!!!!只要告诉我哪有程序下载就好了
- CListView,CTreeView,CHeaderCtrl的问题,再现等。。。
- 设计模式和运行模式下的属性保存的问题,,,急ing
- TRY 和 CATHCH 为什么不能嵌套在 if-else 语句中,该如何处理?
- ADO数据库编程
- OnSysCommand()函数 怎么知道当前传入的是什么消息????
- 谁有VC恢复SQL Server数据库备份的代码,谢谢
- 举例说明CString类的Format(...)的用法。
- 怎样在控制台下使用ClassWizard?
LRESULT CALLBACK myboleProc(
HWND hwnd, // handle to window
UINT useMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
)
{
switch(useMsg)
{
case WM_TIMER:
switch(wParam)
{
case 1:
g_iWhichIcon = !g_iWhichIcon;
NOTIFYICONDATA nid;
nid.cbSize = sizeof( NOTIFYICONDATA );
nid.hWnd = hwnd;
nid.uID = IDI_MYICON;
nid.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;
nid.uCallbackMessage = WM_SYSTEMTRAY;
nid.hIcon = ::LoadIcon(g_hInstance,MAKEINTRESOURCE( g_iWhichIcon ? IDI_MYICON : IDI_MYICON2) );
strcpy((nid.szTip),"AccessControlService收到控制器发给监控管理模块的数据\n请确认监控管理模块是否已经正常运行");
Shell_NotifyIcon(NIM_MODIFY ,&nid);
break;
case 2:
g_iWhichIcon = !g_iWhichIcon;
NOTIFYICONDATA nid4;
nid4.cbSize = sizeof( NOTIFYICONDATA );
nid4.hWnd = hwnd;
nid4.uID = IDI_ICON1;
nid4.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;
nid4.uCallbackMessage = WM_SYSTEMTRAY;
nid4.hIcon = ::LoadIcon(g_hInstance,MAKEINTRESOURCE( g_iWhichIcon ? IDI_ICON1 : IDI_ICON2) );
strcpy((nid4.szTip),"AccessControlService收到控制器发给物业管理模块的数据\n请确认物业管理模块是否已经正常运行");
Shell_NotifyIcon(NIM_MODIFY ,&nid4);
break;
}
break; // 向任务栏添加图标-监控中心报警
case WM_ADDTRAYICON:
//MessageBox(NULL,"添加图表1的消息","",0 | 0x00200000L);
NOTIFYICONDATA nid2;
nid2.cbSize = sizeof( NOTIFYICONDATA );
nid2.hWnd = hTrayIconDlghWnd;
nid2.uID = IDI_MYICON;
nid2.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;
nid2.uCallbackMessage = WM_SYSTEMTRAY;
nid2.hIcon = ::LoadIcon( g_hInstance,MAKEINTRESOURCE(IDI_MYICON));
strcpy(nid2.szTip,"AccessControlService");
Shell_NotifyIcon(NIM_ADD,&nid2);
SetTimer(hwnd,1,350,NULL);
g_TrayIcon1hascreate = true;
break;
// 向任务栏添加图标2--物业中心报警
case WM_ADDTRAYICON1:
//MessageBox(NULL,"添加图表2的消息","",0 | 0x00200000L);
NOTIFYICONDATA nid3;
nid3.cbSize = sizeof( NOTIFYICONDATA );
nid3.hWnd = hTrayIconDlghWnd;
nid3.uID = IDI_ICON1;
nid3.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;
nid3.uCallbackMessage = WM_SYSTEMTRAY;
nid3.hIcon = ::LoadIcon( g_hInstance,MAKEINTRESOURCE(IDI_ICON1));
strcpy(nid3.szTip,"AccessControlService物业模块");
Shell_NotifyIcon(NIM_ADD,&nid3);
SetTimer(hwnd,2,250,NULL);
g_TrayIcon2hascreate = true;
break;
// 从任务栏删除监控模块图标
case WM_DELTRAYICON1:
// MessageBox(NULL,"收到删除图表1的消息","",0 | 0x00200000L);
NOTIFYICONDATA nid1;
nid1.cbSize = sizeof( NOTIFYICONDATA );
nid1.hWnd = hwnd;
nid1.uID = IDI_MYICON;
nid1.uFlags = 0;
Shell_NotifyIcon(NIM_DELETE,&nid1);
::KillTimer(hwnd,1);
g_TrayIcon1hascreate = false;
break; // 从任务栏删除物业模块图标
case WM_DELTRAYICON2:
//MessageBox(NULL,"收到删除图表2的消息","",0 | 0x00200000L);
NOTIFYICONDATA nid5;
nid5.cbSize = sizeof( NOTIFYICONDATA );
nid5.hWnd = hwnd;
nid5.uID = IDI_ICON1;
nid5.uFlags = 0;
Shell_NotifyIcon(NIM_DELETE,&nid5);
::KillTimer(hwnd,2);
g_TrayIcon2hascreate = false;
break;
default:
return DefWindowProc(hwnd,useMsg,wParam,lParam);
}
return 0;
}