BOOL CMainFrame::OnShowMDITabContextMenu(CPoint point, DWORD dwAllowedItems, BOOL bDrop) { CMenu menu; VERIFY(menu.LoadMenu(bDrop ? IDR_POPUP_DROP_MDITABS : IDR_POPUP_MDITABS)); CMenu* pPopup = menu.GetSubMenu(0); ASSERT(pPopup != NULL); if ((dwAllowedItems & AFX_MDI_CREATE_HORZ_GROUP) == 0) { pPopup->DeleteMenu(ID_MDI_NEW_HORZ_TAB_GROUP, MF_BYCOMMAND); } if ((dwAllowedItems & AFX_MDI_CREATE_VERT_GROUP) == 0) { pPopup->DeleteMenu(ID_MDI_NEW_VERT_GROUP, MF_BYCOMMAND); } if ((dwAllowedItems & AFX_MDI_CAN_MOVE_NEXT) == 0) { pPopup->DeleteMenu(ID_MDI_MOVE_TO_NEXT_GROUP, MF_BYCOMMAND); } if ((dwAllowedItems & AFX_MDI_CAN_MOVE_PREV) == 0) { pPopup->DeleteMenu(ID_MDI_MOVE_TO_PREV_GROUP, MF_BYCOMMAND); } CMFCPopupMenu* pPopupMenu = new CMFCPopupMenu; pPopupMenu->SetAutoDestroy(FALSE); pPopupMenu->Create(this, point.x, point.y, pPopup->GetSafeHmenu()); return TRUE; }
BOOL CMainFrame::OnShowMDITabContextMenu (CPoint point, DWORD dwAllowedItems, BOOL bDrop) { TRACE("CMainFrame::OnShowMDITabContextMenu"); if (bDrop || !theApp.m_Options.m_bMDITabsContextMenu) { return FALSE; } CMenu menu; VERIFY(menu.LoadMenu (IDR_POPUP_MDITABS)); CMenu* pPopup = menu.GetSubMenu(0); ASSERT(pPopup != NULL); if (pPopup) { if ((dwAllowedItems & AFX_MDI_CAN_BE_DOCKED) == 0) { pPopup->DeleteMenu (ID_MDI_TABBED, MF_BYCOMMAND); } CMFCPopupMenu* pPopupMenu = new CMFCPopupMenu; if (pPopupMenu) { pPopupMenu->SetAutoDestroy (FALSE); pPopupMenu->Create (this, point.x, point.y, pPopup->GetSafeHmenu ()); } } return TRUE; }
LRESULT CMainFrame::OnToolbarContextMenu(WPARAM,LPARAM lp) { CPoint point (AFX_GET_X_LPARAM(lp), AFX_GET_Y_LPARAM(lp)); CMenu menu; VERIFY(menu.LoadMenu (IDR_POPUP_TOOLBAR)); CMenu* pPopup = menu.GetSubMenu(0); ASSERT(pPopup != NULL); CMFCPopupMenu* pPopupMenu = new CMFCPopupMenu; pPopupMenu->Create (this, point.x, point.y, pPopup->Detach ()); return 0; }
void CClassView::OnContextMenu(CWnd* pWnd, CPoint point) { CTreeCtrl* pWndTree = (CTreeCtrl*)&m_wndClassView; ASSERT_VALID(pWndTree); if (pWnd != pWndTree) { CDockablePane::OnContextMenu(pWnd, point); return; } if (point != CPoint(-1, -1)) { // 选择已单击的项: CPoint ptTree = point; pWndTree->ScreenToClient(&ptTree); UINT flags = 0; HTREEITEM hTreeItem = pWndTree->HitTest(ptTree, &flags); if (hTreeItem != NULL) { pWndTree->SelectItem(hTreeItem); } } pWndTree->SetFocus(); CMenu menu; menu.LoadMenu(IDR_POPUP_SORT); CMenu* pSumMenu = menu.GetSubMenu(0); if (AfxGetMainWnd()->IsKindOf(RUNTIME_CLASS(CMDIFrameWndEx))) { CMFCPopupMenu* pPopupMenu = new CMFCPopupMenu; if (!pPopupMenu->Create(this, point.x, point.y, (HMENU)pSumMenu->m_hMenu, FALSE, TRUE)) return; ((CMDIFrameWndEx*)AfxGetMainWnd())->OnShowPopupMenu(pPopupMenu); UpdateDialogControls(this, FALSE); } }
void COutputList::OnContextMenu(CWnd* /*pWnd*/, CPoint point) { CMenu menu; menu.LoadMenu(IDR_OUTPUT_POPUP); CMenu* pSumMenu = menu.GetSubMenu(0); if (AfxGetMainWnd()->IsKindOf(RUNTIME_CLASS(CMDIFrameWndEx))) { CMFCPopupMenu* pPopupMenu = new CMFCPopupMenu; if (!pPopupMenu->Create(this, point.x, point.y, (HMENU)pSumMenu->m_hMenu, FALSE, TRUE)) return; ((CMDIFrameWndEx*)AfxGetMainWnd())->OnShowPopupMenu(pPopupMenu); UpdateDialogControls(this, FALSE); } SetFocus(); }