VC++实现在系统托盘来新消息闪烁,鼠标悬停显示窗口

2023-03-15,,

转载:http://www.codeguru.com/cpp/com-tech/activex/tutorials/article.php/c8115/How-to-Implement-a-Mouse-HoverLeave-Message-on-the-System-Tray.htm

一、托盘图标闪烁

1.准备两张ico图片用来闪烁的时候交换,然后加上一个timer定时器,来控制图片交换的速度.

2.设置一个变量来控制两张图片的显示顺序,最好用bool类型的变量,第一张图片显示后第一张就变为false,第二张则变为true,如此反复交换.

我的项目是使用的是Duilib

代码:

 m_uNotfyIconTime = SetTimer(this->GetHWND(),NOTIFYICONTIME,,NULL);
 初始化为:m_bIsIcon = false; 
 void CxxxWnd::Shinrk()
{
if(m_bIsIcon)
{
HICON hicon =LoadIcon(CPaintManagerUI::GetInstance(),MAKEINTRESOURCE(IDI_ICON1));
m_nid.hIcon = hicon;
int m = Shell_NotifyIcon(NIM_MODIFY,&m_nid);//透明
m_bIsIcon = false;
}
else
{
HICON hicon = LoadIcon(CPaintManagerUI::GetInstance(),MAKEINTRESOURCE(IDI_ICON));
m_nid.hIcon = hicon;
int m = Shell_NotifyIcon(NIM_MODIFY,&m_nid);
m_bIsIcon = true;
}
}
 case WM_TIMER:
lRes = OnTimer(uMsg,wParam,lParam,bHandled);
case NOTIFYICONTIME:
Shinrk();
break;

悬停托盘显示窗口demo

VC++实现在系统托盘来新消息闪烁,鼠标悬停显示窗口的相关教程结束。

《VC++实现在系统托盘来新消息闪烁,鼠标悬停显示窗口.doc》

下载本文的Word格式文档,以方便收藏与打印。