59 lines
1.4 KiB
C++
59 lines
1.4 KiB
C++
#include "stdafx.h"
|
|
#include "SSITaskbarIcon.h"
|
|
|
|
#include "resource.h" // main symbols
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CSSITaskbarIcon
|
|
|
|
BEGIN_MESSAGE_MAP(CSSITaskbarIcon, COXTaskbarIcon)
|
|
//{{AFX_MSG_MAP(CSSITaskbarIcon)
|
|
ON_WM_LBUTTONDBLCLK()
|
|
ON_WM_RBUTTONUP()
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
void CSSITaskbarIcon::OnRButtonUp(UINT nFlags, CPoint point)
|
|
{
|
|
UNREFERENCED_PARAMETER(nFlags);
|
|
UNREFERENCED_PARAMETER(point);
|
|
// on right click show menu
|
|
DoPopupMenu();
|
|
}
|
|
|
|
void CSSITaskbarIcon::OnLButtonDblClk(UINT nFlags, CPoint point)
|
|
{
|
|
UNREFERENCED_PARAMETER(nFlags);
|
|
UNREFERENCED_PARAMETER(point);
|
|
// on double click restore the position of window on screen
|
|
::PostMessage(m_pPopupOwner->m_hWnd, WM_COMMAND, IDM_RESTORE, (LPARAM)m_hWnd);
|
|
}
|
|
|
|
void CSSITaskbarIcon::DoPopupMenu()
|
|
{
|
|
CMenu popMenu;
|
|
VERIFY(popMenu.LoadMenu(IDR_TRAYICON_POPUPMENU));
|
|
|
|
// set default item
|
|
MENUITEMINFO itemInfo={ sizeof(MENUITEMINFO) };
|
|
itemInfo.fMask=MIIM_STATE;
|
|
itemInfo.fState=MFS_DEFAULT;
|
|
::SetMenuItemInfo(popMenu.m_hMenu,IDM_RESTORE,FALSE,&itemInfo);
|
|
|
|
CPoint posMouse;
|
|
GetCursorPos(&posMouse);
|
|
|
|
// show menu
|
|
m_pPopupOwner->SendMessage(WM_NCACTIVATE,FALSE);
|
|
popMenu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON,
|
|
posMouse.x, posMouse.y, m_pPopupOwner);
|
|
}
|
|
|