Share via


CMDIFrameWndEx::OnShowMDITabContextMenu

Llamado por el marco antes de un menú contextual que se muestra en una de las pestañas.Válido para MDI organización por fichas agrupa únicamente.

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

Parámetros

  • [in] point
    La ubicación del menú en coordenadas de pantalla.

  • [in] dwAllowedItems
    TO bit a bit- OR combinación de marcas que indica qué acciones se permiten la pestaña actual:

    • BCGP_MDI_CREATE_VERT_GROUP )puede crear un grupo vertical de la pestaña.

    • BCGP_MDI_CREATE_HORZ_GROUP )puede crear un grupo de tabulación horizontal.

    • BCGP_MDI_CAN_MOVE_PREV )puede mover una pestaña al grupo anterior de la pestaña.

    • BCGP_MDI_CAN_MOVE_NEXT )puede mover una pestaña al siguiente grupo de la ficha.

    • BCGP_MDI_CAN_BE_DOCKED - cambie un documento con fichas al estado acoplada (pertinente para los documentos con pestañas solo).

  • [in] bTabDrop
    TRUE para mostrar el menú como resultado de arrastrar la pestaña sobre otro grupo con pestañas.FALSE para mostrar el menú como menú contextual en actualmente la pestaña activa.

Valor devuelto

Invalide este método en Clase de CMDIFrameWndEx- clase derivada.

Comentarios

Si no procesa OnShowMDITabContextMenu, el menú contextual no se mostrará.Esta función es generada por Asistente para aplicaciones MFC cuando se habilita la característica de los grupos de MDI organización por fichas.

Ejemplo

Las escrituras siguientes se muestra cómo OnShowMDITabContextMenu se utiliza en ejemplo de VisualStudioDemo: Aplicación 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;
}

Requisitos

encabezado: afxMDIFrameWndEx.h

Vea también

Referencia

Clase de CMDIFrameWndEx

Gráfico de jerarquía