Sdílet prostřednictvím


CMDIFrameWndEx::OnShowMDITabContextMenu

Rámci volána před na jednu z karet se zobrazí místní nabídka.Platné pro MDI kartami skupiny pouze.

virtual BOOL OnShowMDITabContextMenu(
   CPoint point,
   DWORD dwAllowedItems,
   BOOL bTabDrop 
);

Parametry

  • [v]point
    Umístění nabídky v obrazovkových souřadnicích.

  • [v]dwAllowedItems
    Bitový operátor OR kombinace příznaků, určuje, jaké akce jsou povoleny pro aktuální kartě:

    • BCGP_MDI_CREATE_VERT_GROUP-lze vytvořit skupinu svislé kartu.

    • BCGP_MDI_CREATE_HORZ_GROUP-lze vytvořit skupinu horizontální tabelátor.

    • BCGP_MDI_CAN_MOVE_PREV-kartu můžete přesunout na předchozí kartu skupiny.

    • BCGP_MDI_CAN_MOVE_NEXT-kartu můžete přesunout k další skupině karet.

    • BCGP_MDI_CAN_BE_DOCKED-Přepnutí do ukotveného státu (platí pro dokumenty s kartami pouze) dokumentů s kartami.

  • [v]bTabDrop
    TRUEzobrazení nabídky z přetažením na kartu na jinou skupinu s kartami.FALSEv nabídce Zobrazit jako místní nabídky na aktivní kartu.

Vrácená hodnota

Přepsat tuto metodu v Třída CMDIFrameWndEx-odvozené třídy.

Poznámky

Pokud není proces OnShowMDITabContextMenu , nebudou zobrazeny v místní nabídce.Tato funkce je generován Průvodce aplikace MFC povolíte funkci skupin s kartami MDI.

Příklad

Následující příklad ukazuje jak OnShowMDITabContextMenu je používán VisualStudioDemo vzorku: aplikace Visual Studio MFC.

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);
    }

    if ((dwAllowedItems & AFX_MDI_CAN_BE_DOCKED) == 0)
    {
        pPopup->DeleteMenu(ID_MDI_TABBED_DOCUMENT, MF_BYCOMMAND);
    }

    CMFCPopupMenu* pPopupMenu = new CMFCPopupMenu;
    pPopupMenu->SetAutoDestroy(FALSE);
    pPopupMenu->Create(this, point.x, point.y, pPopup->GetSafeHmenu());

    return TRUE;
}

Požadavky

Záhlaví: afxMDIFrameWndEx.h

Viz také

Referenční dokumentace

Třída CMDIFrameWndEx

Diagram hierarchie