怎样在状态栏里添加图标!? 我做一个监控软件,想在状态栏里添加图标,用来表示通讯状态,当正常时为红色图标,不正常时为黄色! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你的意思是在托盘里加程序图标吧。int CAAADlg::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CDialog::OnCreate(lpCreateStruct) == -1) return -1; tnd.cbSize=sizeof(NOTIFYICONDATA); tnd.hWnd=this->m_hWnd; tnd.uID=IDR_MENU_POPUP; tnd.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP; tnd.uCallbackMessage=WM_MYMESSAGE; tnd.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME)); strcpy(tnd.szTip,"AAA"); Shell_NotifyIcon(NIM_ADD,&tnd); return 0;}void CAAADlg::OnMYMESSAGE(WPARAM wParam, LPARAM lParam){ CMenu menu,*pSubMenu; if (::IsWindow(setdlg->GetSafeHwnd())) return; if(LOWORD(lParam)==WM_RBUTTONUP) { if(!menu.LoadMenu (tnd.uID )) return; if(!(pSubMenu = menu.GetSubMenu (0))) return; CPoint pos; GetCursorPos(&pos); ::SetForegroundWindow (tnd.hWnd ); ::TrackPopupMenu (pSubMenu->m_hMenu ,0,pos.x,pos.y,0,tnd.hWnd ,NULL); menu.DestroyMenu (); } else if(LOWORD(lParam)==WM_LBUTTONDBLCLK || LOWORD(lParam)==WM_LBUTTONDOWN ) { OnTest(); } return; }至于变化图标只要在需要的地方加 tnd.hIcon =pApp->LoadIcon(IDI_MESSAGE); Shell_NotifyIcon(NIM_MODIFY,&tnd);就可以了。 http://www.vckbase.com/document/viewdoc/?id=1029类似做法 关键就是Shell_NotifyIcon的使用 NIM_ADD,NIM_MODIFY参数 请问如何获得Drop List风格的CComboBoxEx控件当前选中的项的文字 问个简单的问题,在窗口中,系统给窗口和客户区是不是各分配了一个HDC句柄的?他们是不是Compatiable的? child和popup有什么区别?就是WS_CHILD和WS_POPUP的区别? 用IFont的GetSize,怎样得到字体的宽和高? 请问在VC里怎么获得和设置打印的参数呢????急 RELEASE的设置? S.M.A.R.T.技术 怎样得到系统支持的所有字体? 菜鸟的创建bmp问题的帖子 对话框最小化时的问题 简单问题,怎么取子字符串? 求助:类似于函数模板的技巧性问题,谢谢
{
if (CDialog::OnCreate(lpCreateStruct) == -1)
return -1;
tnd.cbSize=sizeof(NOTIFYICONDATA);
tnd.hWnd=this->m_hWnd;
tnd.uID=IDR_MENU_POPUP;
tnd.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP;
tnd.uCallbackMessage=WM_MYMESSAGE;
tnd.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME));
strcpy(tnd.szTip,"AAA");
Shell_NotifyIcon(NIM_ADD,&tnd); return 0;
}
void CAAADlg::OnMYMESSAGE(WPARAM wParam, LPARAM lParam)
{
CMenu menu,*pSubMenu; if (::IsWindow(setdlg->GetSafeHwnd()))
return; if(LOWORD(lParam)==WM_RBUTTONUP)
{
if(!menu.LoadMenu (tnd.uID )) return;
if(!(pSubMenu = menu.GetSubMenu (0))) return; CPoint pos;
GetCursorPos(&pos); ::SetForegroundWindow (tnd.hWnd );
::TrackPopupMenu (pSubMenu->m_hMenu ,0,pos.x,pos.y,0,tnd.hWnd ,NULL);
menu.DestroyMenu ();
}
else if(LOWORD(lParam)==WM_LBUTTONDBLCLK || LOWORD(lParam)==WM_LBUTTONDOWN )
{
OnTest(); } return;
}
至于变化图标只要在需要的地方加
tnd.hIcon =pApp->LoadIcon(IDI_MESSAGE);
Shell_NotifyIcon(NIM_MODIFY,&tnd);
就可以了。
类似做法
NIM_ADD,NIM_MODIFY参数