void CMailView::OnContextMenu(CWnd*, CPoint point) { if (point == CPoint (-1, -1)) { CBCGPGridRow* pSel = GetReportCtrl ()->GetCurSel (); if (pSel != NULL) { CRect rect = pSel->GetRect (); ClientToScreen (&rect); point.x = rect.left; point.y = rect.bottom; } } theApp.ShowPopupMenu (IDR_MAIL_MENU, point, this); }
//************************************************************************************************ void CBCGPRibbonCustomizeRibbonPage::OnShowTreeContextMenu(CBCGPRibbonTreeCtrl* pTreeCtrl, CPoint point) { if (pTreeCtrl != &m_wndRibbonTreeDest) { return; } if (m_pSelCategoryDest == NULL && m_pSelPanelDest == NULL && m_pSelElemDest == NULL) { return; } const UINT idNewTab = (UINT) -102; const UINT idNewGroup = (UINT) -103; const UINT idRename = (UINT) -104; const UINT idRemove = (UINT) -105; const UINT idMoveUp = (UINT) -106; const UINT idMoveDown = (UINT) -107; CMenu menu; menu.CreatePopupMenu (); { CBCGPLocalResource locaRes; CString strItem; m_wndNewTab.GetWindowText(strItem); menu.AppendMenu(MF_STRING, idNewTab, strItem); if (!m_wndNewTab.IsWindowEnabled()) { menu.EnableMenuItem(idNewTab, MF_GRAYED); } m_wndNewGroup.GetWindowText(strItem); menu.AppendMenu(MF_STRING, idNewGroup, strItem); if (!m_wndNewGroup.IsWindowEnabled()) { menu.EnableMenuItem(idNewGroup, MF_GRAYED); } menu.AppendMenu (MF_SEPARATOR); m_wndRename.GetWindowText(strItem); menu.AppendMenu(MF_STRING, idRename, strItem); if (!m_wndRename.IsWindowEnabled()) { menu.EnableMenuItem(idRename, MF_GRAYED); } strItem.LoadString(IDS_BCGBARRES_DELETE); menu.AppendMenu(MF_STRING, idRemove, strItem); if (!m_wndRemove.IsWindowEnabled()) { menu.EnableMenuItem(idRemove, MF_GRAYED); } menu.AppendMenu (MF_SEPARATOR); strItem.LoadString(IDS_BCGBARRES_MOVEUP); menu.AppendMenu(MF_STRING, idMoveUp, strItem); if (!m_wndUp.IsWindowEnabled()) { menu.EnableMenuItem(idMoveUp, MF_GRAYED); } strItem.LoadString(IDS_BCGBARRES_MOVEDN); menu.AppendMenu(MF_STRING, idMoveDown, strItem); if (!m_wndDown.IsWindowEnabled()) { menu.EnableMenuItem(idMoveDown, MF_GRAYED); } } HWND hwndThis = GetSafeHwnd (); CPoint pt = point; if (pt == CPoint(-1, -1)) { CBCGPGridRow* pRow = pTreeCtrl->GetCurSel(); if (pRow != NULL) { CRect rectRow = pRow->GetRect(); pt = CPoint(rectRow.left, rectRow.bottom + 1); } else { pt = CPoint (0, 0); } } pTreeCtrl->ClientToScreen(&pt); int nMenuResult = 0; if (g_pContextMenuManager != NULL) { nMenuResult = g_pContextMenuManager->TrackPopupMenu(menu, pt.x, pt.y, pTreeCtrl); } else { nMenuResult = ::TrackPopupMenu (menu, TPM_LEFTALIGN | TPM_LEFTBUTTON | TPM_NONOTIFY | TPM_RETURNCMD, pt.x, pt.y, 0, pTreeCtrl->GetSafeHwnd (), NULL); } if (!::IsWindow (hwndThis)) { return; } switch (nMenuResult) { case idNewTab: OnNewTab(); break; case idNewGroup: OnNewGroup(); break; case idRename: OnRename(); break; case idMoveUp: OnUp(); break; case idMoveDown: OnDown(); break; case idRemove: OnRemove(); break; } }