您的位置:首页 > 编程语言 > C语言/C++

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

2016-08-31 15:44 531 查看
转载: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,500,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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: