Compartilhar via


CMDIFrameWndEx::OnShowMDITabContextMenu

Chamado pela estrutura antes de um menu de atalho é exibido em um dos guias. Válido somente para MDI catalogou grupos.

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

Parâmetros

  • [in] point
    O local de menu na tela coordena.

  • [in] dwAllowedItems
    A bits OU bit a combinação de sinalizadores que indica quais ações são permitidas a guia atual:

    • BCGP_MDI_CREATE_VERT_GROUP - pode criar um grupo de tabulação vertical.

    • BCGP_MDI_CREATE_HORZ_GROUP - pode criar um grupo de guia horizontal.

    • BCGP_MDI_CAN_MOVE_PREV - pode mover um guia para o grupo anterior na guia.

    • BCGP_MDI_CAN_MOVE_NEXT - pode mover um guia para o próximo grupo de tabulação.

    • BCGP_MDI_CAN_BE_DOCKED - alternar um documento com guias ao estado conectado (relevante para documentos com guias somente).

  • [in] bTabDrop
    TRUE para exibir o menu resultado de arrastar a guia em outro grupo com guias. FALSE para exibir o menu como um menu de atalho na guia ativa no momento.

Valor de retorno

Substitua esse método em Classe CMDIFrameWndEx- classe derivada.

Comentários

Se você não processa OnShowMDITabContextMenu, menu de atalho não será exibido. Essa função é gerada por Assistente para Aplicativo do MFC quando você ativa o recurso listado MDI de grupos.

Exemplo

O exemplo a seguir mostra como OnShowMDITabContextMenu é usado em exemplo de VisualStudioDemo: Aplicativo 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

Cabeçalho: afxMDIFrameWndEx.h

Consulte também

Referência

Classe CMDIFrameWndEx

Gráfico da hierarquia