Freigeben über


CMDIFrameWndEx::OnShowMDITabContextMenu

Aufgerufen vom Framework vor einem Kontextmenü wird auf einer der Registerkarten angezeigt. Gültig für MDI mit den versehene nur Gruppen.

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

Parameter

  • [in] point
    Der Speicherort des Menüs in Bildschirmkoordinaten.

  • [in] dwAllowedItems
    Eine Kombination bitweises oder von Flags, die angibt, welche Aktionen für die aktuelle Registerkarte zulässig sind:

    • BCGP_MDI_CREATE_VERT_GROUP - kann eine vertikale Registerkartengruppe erstellen.

    • BCGP_MDI_CREATE_HORZ_GROUP - kann eine Horizontaltabulatorzeichengruppe erstellen.

    • BCGP_MDI_CAN_MOVE_PREV - kann eine Registerkarte auf die vorherige Registerkartengruppe verschieben.

    • BCGP_MDI_CAN_MOVE_NEXT - kann eine Registerkarte auf die folgenden Registerkartengruppe verschieben.

    • BCGP_MDI_CAN_BE_DOCKED - Aktivieren Sie ein Dokument im Registerkartenformat im angedockten Zustand um (relevant für Dokumente nur im Registerkartenformat).

  • [in] bTabDrop
    TRUE, damit das Menü aufgrund des Ziehens der Registerkarte auf eine andere Gruppe angezeigt im Registerkartenformat. FALSE, damit das Menü als Kontextmenü auf der aktiven Registerkarte nur anzuzeigen.

Rückgabewert

Überschreiben Sie diese Methode in CMDIFrameWndEx-Klasse von abgeleitete Klasse.

Hinweise

Wenn Sie nicht OnShowMDITabContextMenu verarbeiten, wird das Kontextmenü nicht angezeigt. Diese Funktion wird durch MFC-Anwendungs-Assistent generiert, wenn Sie die MDI mit den versehene Gruppenfunktion aktivieren.

Beispiel

Im folgenden Beispiel wird gezeigt, wie OnShowMDITabContextMenu in VisualStudioDemo-Beispiel: MFC-Visual Studio-Anwendung verwendet wird.

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

Anforderungen

Header: afxMDIFrameWndEx.h

Siehe auch

Referenz

CMDIFrameWndEx-Klasse

Hierarchiediagramm