CMDIFrameWndEx::OnShowMDITabContextMenu
Chiamato dal framework prima di un menu di scelta rapida visualizzato su una delle schede.Valido per i gruppi a schede MDI solo.
virtual BOOL OnShowMDITabContextMenu(
CPoint point,
DWORD dwAllowedItems,
BOOL bTabDrop
);
Parametri
[in] point
La posizione del menu coordinate dello schermo.[in] dwAllowedItems
TO bit per bit OR combinazione di flag che indica che azioni consentite per la scheda corrente:BCGP_MDI_CREATE_VERT_GROUP - possibile creare un gruppo verticale della scheda.
BCGP_MDI_CREATE_HORZ_GROUP - possibile creare un gruppo della scheda orizzontale.
BCGP_MDI_CAN_MOVE_PREV )può spostare una scheda al gruppo precedente della scheda.
BCGP_MDI_CAN_MOVE_NEXT )può spostare una scheda al seguente gruppo della scheda.
BCGP_MDI_CAN_BE_DOCKED - passare un documento a schede allo stato agganciato (rilevante per i documenti a schede solo).
[in] bTabDrop
TRUE per visualizzare il menu come conseguenza di trascinare la scheda in un altro gruppo di schede.FALSE per visualizzare attualmente il menu come menu di scelta rapida - nella scheda attiva.
Valore restituito
Eseguire l'override di questo metodo in Classe di CMDIFrameWndExclasse derivata da.
Note
Se non elaborate OnShowMDITabContextMenu, il menu di scelta rapida non vengono visualizzati.Questa funzione viene generata da Creazione guidata applicazione MFC quando si abilita la funzionalità dei gruppi MDI a schede.
Esempio
Di seguito viene illustrato come OnShowMDITabContextMenu viene utilizzato in Esempio VisualStudioDemo: Applicazione 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;
}
Requisiti
intestazione: afxMDIFrameWndEx.h