CMDIFrameWndEx::OnShowMDITabContextMenu
Appelé par l'infrastructure avant un menu contextuel s'affiche sur l'un des onglets.Valide pour MDI est tabulé des groupes uniquement.
virtual BOOL OnShowMDITabContextMenu(
CPoint point,
DWORD dwAllowedItems,
BOOL bTabDrop
);
Paramètres
[in] point
L'emplacement du menu de l'écran coordonne.[in] dwAllowedItems
A au niveau de bits OR combinaison des balises qui indique les actions sont autorisées de l'onglet actuel :BCGP_MDI_CREATE_VERT_GROUP - peut créer un groupe de tabulation verticale.
BCGP_MDI_CREATE_HORZ_GROUP - peut créer un groupe de tabulation horizontale.
BCGP_MDI_CAN_MOVE_PREV - peut déplacer un onglet dans le groupe d'onglets précédent.
BCGP_MDI_CAN_MOVE_NEXT - peut déplacer un onglet au groupe d'onglets.
BCGP_MDI_CAN_BE_DOCKED - basculez un document avec onglets à l'état ancré (approprié pour les documents avec onglet uniquement).
[in] bTabDrop
TRUE pour afficher le menu résultant de faire glisser l'onglet vers un autre groupe à onglet.FALSE pour afficher le menu au menu contextuel sur actuel - l'onglet actif.
Valeur de retour
Substituez cette méthode dans Classe de CMDIFrameWndExclasse dérivée.
Notes
Si vous ne pas traiter OnShowMDITabContextMenu, le menu contextuel ne s'affiche pas.Cette fonction est générée par L'Assistant Application MFC lorsque vous activez la fonctionnalité de groupes tabulée par MDI.
Exemple
Les l'exemple suivant montre comment OnShowMDITabContextMenu est utilisé dans Exemple VisualStudioDemo : Application 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;
}
Configuration requise
en-tête : afxMDIFrameWndEx.h