123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- #include "StdAfx.h"
- #include "TrayIcon.h"
- namespace DuiLib
- {
- CTrayIcon::CTrayIcon(void)
- {
- memset(&m_trayData, 0, sizeof(m_trayData));
- m_bEnabled = false;
- m_bVisible = false;
- m_hWnd = NULL;
- m_uMessage = UIMSG_TRAYICON;
- }
- CTrayIcon::~CTrayIcon(void)
- {
- DeleteTrayIcon();
- }
- void CTrayIcon::CreateTrayIcon( HWND _RecvHwnd, UINT _IconIDResource, LPCTSTR _ToolTipText, UINT _Message)
- {
- if(!_RecvHwnd || _IconIDResource <= 0 ){
- return;
- }
- if(_Message != 0) m_uMessage = _Message;
- m_hIcon = LoadIcon(CPaintManagerUI::GetInstance(), MAKEINTRESOURCE(_IconIDResource));
- m_trayData.cbSize = sizeof(NOTIFYICONDATA);
- m_trayData.hWnd = _RecvHwnd;
- m_trayData.uID = _IconIDResource;
- m_trayData.hIcon = m_hIcon;
- m_trayData.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;
- m_trayData.uCallbackMessage = m_uMessage;
- if(_ToolTipText) _tcscpy(m_trayData.szTip, _ToolTipText);
- Shell_NotifyIcon(NIM_ADD, &m_trayData);
- m_bEnabled = true;
- }
- void CTrayIcon::DeleteTrayIcon()
- {
- Shell_NotifyIcon(NIM_DELETE, &m_trayData);
- m_bEnabled = false;
- m_bVisible = false;
- m_hWnd = NULL;
- m_uMessage = UIMSG_TRAYICON;
- }
- bool CTrayIcon::SetTooltipText( LPCTSTR _ToolTipText )
- {
- if(_ToolTipText) _tcscpy(m_trayData.szTip,_ToolTipText);
- if (!m_bEnabled) return FALSE;
- m_trayData.uFlags = NIF_TIP;
- return Shell_NotifyIcon(NIM_MODIFY, &m_trayData) == TRUE;
- }
- bool CTrayIcon::SetTooltipText( UINT _IDResource )
- {
- TCHAR mbuf[256] = {0};
- LoadString(CPaintManagerUI::GetInstance(), _IDResource,mbuf, 256);
- return SetTooltipText(mbuf);
- }
- DuiLib::CDuiString CTrayIcon::GetTooltipText() const
- {
- return m_trayData.szTip;
- }
- bool CTrayIcon::SetIcon( HICON _Hicon )
- {
- if(_Hicon) m_hIcon = _Hicon;
- m_trayData.uFlags = NIF_ICON;
- m_trayData.hIcon = _Hicon;
-
- if (!m_bEnabled) return FALSE;
- return Shell_NotifyIcon(NIM_MODIFY, &m_trayData) == TRUE;
- return false;
- }
- bool CTrayIcon::SetIcon( LPCTSTR _IconFile )
- {
- HICON hIcon = LoadIcon(CPaintManagerUI::GetInstance(),_IconFile);
- return SetIcon(hIcon);
- }
- bool CTrayIcon::SetIcon( UINT _IDResource )
- {
- HICON hIcon = LoadIcon(CPaintManagerUI::GetInstance(), MAKEINTRESOURCE(_IDResource));
- return SetIcon(hIcon);
- }
- HICON CTrayIcon::GetIcon() const
- {
- HICON hIcon = NULL;
- hIcon = m_trayData.hIcon;
- return hIcon;
- }
- void CTrayIcon::SetHideIcon()
- {
- if (IsVisible()) {
- SetIcon((HICON)NULL);
- m_bVisible = TRUE;
- }
- }
- void CTrayIcon::SetShowIcon()
- {
- if (!IsVisible()) {
- SetIcon(m_hIcon);
- m_bVisible = FALSE;
- }
- }
- void CTrayIcon::RemoveIcon()
- {
- m_trayData.uFlags = 0;
- Shell_NotifyIcon(NIM_DELETE, &m_trayData);
- m_bEnabled = FALSE;
- }
- }
|