Condividi tramite


CMDIFrameWndEx::OnShowMDITabContextMenu

Chiamato dal framework prima di un menu di scelta rapida visualizzato su una delle schede.Valido per i gruppi a schede MDI solo.

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

Parametri

  • [in] point
    La posizione del menu coordinate dello schermo.

  • [in] dwAllowedItems
    TO bit per bit OR combinazione di flag che indica che azioni consentite per la scheda corrente:

    • BCGP_MDI_CREATE_VERT_GROUP - possibile creare un gruppo verticale della scheda.

    • BCGP_MDI_CREATE_HORZ_GROUP - possibile creare un gruppo della scheda orizzontale.

    • BCGP_MDI_CAN_MOVE_PREV )può spostare una scheda al gruppo precedente della scheda.

    • BCGP_MDI_CAN_MOVE_NEXT )può spostare una scheda al seguente gruppo della scheda.

    • BCGP_MDI_CAN_BE_DOCKED - passare un documento a schede allo stato agganciato (rilevante per i documenti a schede solo).

  • [in] bTabDrop
    TRUE per visualizzare il menu come conseguenza di trascinare la scheda in un altro gruppo di schede.FALSE per visualizzare attualmente il menu come menu di scelta rapida - nella scheda attiva.

Valore restituito

Eseguire l'override di questo metodo in Classe di CMDIFrameWndExclasse derivata da.

Note

Se non elaborate OnShowMDITabContextMenu, il menu di scelta rapida non vengono visualizzati.Questa funzione viene generata da Creazione guidata applicazione MFC quando si abilita la funzionalità dei gruppi MDI a schede.

Esempio

Di seguito viene illustrato come OnShowMDITabContextMenu viene utilizzato in Esempio VisualStudioDemo: Applicazione MFC Visual Studio.

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

Requisiti

intestazione: afxMDIFrameWndEx.h

Vedere anche

Riferimenti

Classe di CMDIFrameWndEx

Grafico della gerarchia