Partager via


CMDIFrameWndEx::OnShowMDITabContextMenu

Appelé par l'infrastructure avant un menu contextuel s'affiche sur l'un des onglets.Valide pour MDI est tabulé des groupes uniquement.

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

Paramètres

  • [in] point
    L'emplacement du menu de l'écran coordonne.

  • [in] dwAllowedItems
    A au niveau de bits OR combinaison des balises qui indique les actions sont autorisées de l'onglet actuel :

    • BCGP_MDI_CREATE_VERT_GROUP - peut créer un groupe de tabulation verticale.

    • BCGP_MDI_CREATE_HORZ_GROUP - peut créer un groupe de tabulation horizontale.

    • BCGP_MDI_CAN_MOVE_PREV - peut déplacer un onglet dans le groupe d'onglets précédent.

    • BCGP_MDI_CAN_MOVE_NEXT - peut déplacer un onglet au groupe d'onglets.

    • BCGP_MDI_CAN_BE_DOCKED - basculez un document avec onglets à l'état ancré (approprié pour les documents avec onglet uniquement).

  • [in] bTabDrop
    TRUE pour afficher le menu résultant de faire glisser l'onglet vers un autre groupe à onglet.FALSE pour afficher le menu au menu contextuel sur actuel - l'onglet actif.

Valeur de retour

Substituez cette méthode dans Classe de CMDIFrameWndExclasse dérivée.

Notes

Si vous ne pas traiter OnShowMDITabContextMenu, le menu contextuel ne s'affiche pas.Cette fonction est générée par L'Assistant Application MFC lorsque vous activez la fonctionnalité de groupes tabulée par MDI.

Exemple

Les l'exemple suivant montre comment OnShowMDITabContextMenu est utilisé dans Exemple VisualStudioDemo : Application 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;
}

Configuration requise

en-tête : afxMDIFrameWndEx.h

Voir aussi

Référence

Classe de CMDIFrameWndEx

Graphique de la hiérarchie