void CTrayIcon::CreateIcon( int nId, const LPCTSTR lpText ) { m_Lock.Lock(); m_NoPriorityIconData.nIconFlash = nId; m_NoPriorityIconData.nIconNormal = nId; m_NoPriorityIconData.IsPriority = false; m_NoPriorityIconData.strTooltip = lpText; m_Lock.Unlock(); CIcon ico; ico.LoadIcon(nId); m_data.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP; m_data.hWnd =m_hNotifyWnd; m_data.uID = ELIVE_TRAY_ID; m_data.hIcon = (HICON)ico; m_data.uCallbackMessage = WM_TRAYICONNOTIFY; ::lstrcpyn(m_data.szTip, lpText, m_version.dwMajorVersion >= 5 ? 127 : 63); ::Shell_NotifyIcon(NIM_ADD, &m_data); if (m_version.dwMajorVersion >= 5) { m_data.uVersion = NOTIFYICON_VERSION; ::Shell_NotifyIcon(NIM_SETVERSION, &m_data); int code = GetLastError(); ATLTRACE("SetVersion error: %d.", code); } ::SetTimer(m_hNotifyWnd,_defFlashIconTimerID,400,NULL); }
void CTrayIcon::OnTimer( UINT_PTR nIDEvent ) { if ( nIDEvent == _defFlashIconTimerID ) { if ( m_IsShowIcon ) { FlashIconData Data = DecideFlashIconData(); CIcon icon; icon.LoadIcon(Data.nIconNormal); ChangeIcon(icon); ChangeToolTip(Data.strTooltip); m_IsShowIcon = false; } else { FlashIconData Data = DecideFlashIconData(); CIcon icon; icon.LoadIcon(Data.nIconFlash); ChangeIcon(icon); ChangeToolTip(Data.strTooltip); m_IsShowIcon = true; } } else if ( nIDEvent == _defIconLeaveTimerID ) { POINT pt = {0}; RECT rc; GetCursorPos(&pt); if ( GetTrayIconRect(FindTrayWnd(), m_hNotifyWnd, &rc) == S_FALSE) { GetTrayIconRect(FindNotifyIconOverflowWindow(), m_hNotifyWnd, &rc); } if ( !PtInRect(&rc,pt) ) { BOOL b; OnTrayIconNotify(WM_TRAYICONNOTIFY, 0, WM_MOUSELEAVE, b); } } }
LRESULT CAboutBox::OnInitDialog( UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled ) { CAxDialogImpl<CAboutBox>::OnInitDialog(uMsg, wParam, lParam, bHandled); DLLVERSIONINFO dllVerInfo; ZeroMemory(&dllVerInfo, sizeof(DLLVERSIONINFO)); dllVerInfo.cbSize = sizeof(DLLVERSIONINFO); DllGetVersion(GetBaseModule().GetModuleInstance(), &dllVerInfo); TCHAR version[100]; _stprintf_s(version, _T("%d.%d.%d"), dllVerInfo.dwMajorVersion, dllVerInfo.dwMinorVersion, dllVerInfo.dwBuildNumber); ::SetWindowText(GetDlgItem(IDC_VERSION), version); ::SetWindowText(GetDlgItem(IDC_PRODUCTID), PRODUCT_ID_TEXT); ::SetWindowText(GetDlgItem(IDC_CREDITS), _T("CodeProject.com team\n") _T("Armen Hakobyan\n") _T("...")); // set icons CIcon icon; icon.LoadIcon(IDI_ABOUTBOX); SetIcon(icon); m_Homepage.SetHyperLink(_T("http://www.upgradr.com")); m_Homepage.SetLabel(_T("www.upgradr.com")); //m_Homepage.SetToolTipText(_T("go to Upgradr homepage")); m_Homepage.SubclassWindow(GetDlgItem(IDC_HOMEPAGE)); m_Homepage.SetExtendedStyle(HLINK_UNDERLINEHOVER); m_Support.SetHyperLink(_T("mailto:[email protected]")); m_Support.SetLabel(_T("*****@*****.**")); //m_Support.SetToolTipText(_T("send email to Upgradr support")); m_Support.SubclassWindow(GetDlgItem(IDC_SUPPORT)); m_Support.SetExtendedStyle(HLINK_UNDERLINEHOVER); //HBITMAP hBmp = m_Homepage.AddBitmap(IDB_TOOLBAR); //ATLASSERT(hBmp); bHandled = TRUE; return 1; // Let the system set the focus }
LRESULT HubMessageControl::onPaint(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/) { CPaintDC dc(m_hWnd); CRect r; GetClientRect(r); dc.FillRect(r, GetSysColorBrush(COLOR_INFOBK)); CIcon helpIcon; helpIcon.LoadIcon(IDI_SETTINGS_HELP, ICON_WIDTH, ICON_HEIGHT); if (helpIcon) { helpIcon.DrawIconEx(dc, (m_leftMargin - ICON_WIDTH) / 2, (r.Height() - ICON_HEIGHT) / 2, ICON_WIDTH, ICON_HEIGHT); } dc.SetBkColor(GetSysColor(COLOR_INFOBK)); dc.SetTextColor(GetSysColor(COLOR_INFOTEXT)); const HFONT oldFont = dc.SelectFont(WinUtil::systemFont); r.top += m_topMargin; r.left += m_leftMargin; r.right -= m_rightMargin; r.bottom -= m_bottomMargin; const int screenTop = r.top; const int screenBottom = r.bottom; r.top -= scrollTop; for (HubMessageIterator i = messages.begin(); i != messages.end(); ++i) { const HubMessage& msg = *i; r.bottom = r.top + msg.height; //dcdebug("scrollTop=%d r.top=%d r.bottom=%d screenTop=%d screenBottom=%d \n", scrollTop, r.top, r.bottom, screenTop, screenBottom); if (r.bottom > screenTop) { tstring tmp = msg.time + _T(" ") + msg.text; dc.DrawText(tmp.c_str(), tmp.length(), r, DT_WORDBREAK); } if (r.bottom >= screenBottom) break; r.top = r.bottom; } dc.SelectFont(oldFont); if (GetFocus() == m_hWnd) { drawFocusRect(dc); } return 0; }
void CTrayIcon::ChangeIcon( UINT nID ) { CIcon icon; icon.LoadIcon(nID); this->ChangeIcon(icon); }