VC++實現在系統托盤來新消息閃爍,鼠標懸停顯示窗口


轉載: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

代碼:

 

1 m_uNotfyIconTime = SetTimer(this->GetHWND(),NOTIFYICONTIME,500,NULL);
1 初始化為:m_bIsIcon = false; 
 1 void CxxxWnd::Shinrk()
 2 {
 3     if(m_bIsIcon)
 4     {
 5         HICON hicon =LoadIcon(CPaintManagerUI::GetInstance(),MAKEINTRESOURCE(IDI_ICON1));
 6         m_nid.hIcon = hicon;
 7         int m = Shell_NotifyIcon(NIM_MODIFY,&m_nid);//透明
 8         m_bIsIcon = false;
 9     }
10     else
11     {
12         HICON hicon = LoadIcon(CPaintManagerUI::GetInstance(),MAKEINTRESOURCE(IDI_ICON));
13         m_nid.hIcon = hicon;
14         int m = Shell_NotifyIcon(NIM_MODIFY,&m_nid);
15         m_bIsIcon = true;
16     }
17 }
1 case WM_TIMER:
2         lRes = OnTimer(uMsg,wParam,lParam,bHandled);
case NOTIFYICONTIME:
        Shinrk();
        break;

 

懸停托盤顯示窗口demo


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM