Partilhar via


CMDIFrameWndEx::OnShowMDITabContextMenu

Chamado pela estrutura antes que um menu de atalho é exibido em uma das guias.Válido para MDI com guias grupos somente.

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

Parâmetros

  • [in] point
    O local do menu do coordenadas de tela.

  • [in] dwAllowedItems
    Uma combinação de operador bit a bit ou de sinalizadores que indica quais ações são permitidas para a guia corrente:

    • BCGP_MDI_CREATE_VERT_GROUP -pode criar um agrupar de guia vertical.

    • BCGP_MDI_CREATE_HORZ_GROUP -pode criar um agrupar de guia horizontal.

    • BCGP_MDI_CAN_MOVE_PREV -pode mover uma guia para o agrupar de guias anterior.

    • BCGP_MDI_CAN_MOVE_NEXT -pode mover uma guia para o próximo agrupar de guias.

    • BCGP_MDI_CAN_BE_DOCKED -comutador um documento com guias para o estado encaixado (relevante apenas documentos com guias).

  • [in] bTabDrop
    TRUE Para exibir o menu sistema autônomo resultado de arrastar a guia para outro agrupar com guias. FALSE Para exibir o menu sistema autônomo um menu de atalho na guia ativo no momento.

Valor de retorno

Ignore este método em um Classe CMDIFrameWndEx-classe derivada.

Comentários

Se você não processa OnShowMDITabContextMenu, não será exibido o menu de atalho. Esta função é gerada pelo MFC aplicativo assistente quando você ativa o recurso grupos com guias MDI.

Exemplo

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

Conceitos

Gráfico de hierarquia do MFC

Referência

Classe CMDIFrameWndEx