Поделиться через


CMDIFrameWndEx::OnShowMDITabContextMenu

Вызывается инфраструктурой перед контекстным меню отображается на одной из вкладок.Допустимый для Групп нашитых MDI.

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

Параметры

  • [входящий] point
    Расположение меню в экранных координатах.

  • [входящий] dwAllowedItems
    A битовый- ИЛИ сочетание флаги, указывающее, какие действия разрешены для текущей вкладки:

    • BCGP_MDI_CREATE_VERT_GROUP - удается создать вертикальная группу вкладок.

    • BCGP_MDI_CREATE_HORZ_GROUP - удается создать группу горизонтальной табуляции.

    • BCGP_MDI_CAN_MOVE_PREV - может перейти на вкладку к предыдущей группе вкладок.

    • BCGP_MDI_CAN_MOVE_NEXT - может перейти на вкладку к следующей группе вкладок.

    • BCGP_MDI_CAN_BE_DOCKED - переключение команду вкладка в состыкованному состояние (соответствующий нашитых только для документов).

  • [входящий] bTabDrop
    TRUE для отображения меню в результате перетащить на другую вкладку нашитую группу.FALSE для отображения меню, как контекстное меню в текущей активной вкладке.

Возвращаемое значение

Переопределите этот метод в Класс CMDIFrameWndEx- производный класс.

Заметки

Если не обрабатывается OnShowMDITabContextMenu, контекстное меню отображаться не будет.Эта функция создается Мастер приложений MFC при включении нашитую MDI функцию Групп.

Пример

Показать, как OnShowMDITabContextMenu следующие примере используется в Образец VisualStudioDemo: приложение Visual Studio MFC.

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

Требования

заголовок: afxMDIFrameWndEx.h

См. также

Ссылки

Класс CMDIFrameWndEx

Диаграмма иерархии