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