CMDIFrameWndEx::OnShowMDITabContextMenu
Llamado por el marco antes de un menú contextual que se muestra en una de las pestañas. Válido para MDI organización por fichas agrupa únicamente.
virtual BOOL OnShowMDITabContextMenu(
CPoint point,
DWORD dwAllowedItems,
BOOL bTabDrop
);
Parámetros
[in] point
La ubicación del menú en coordenadas de pantalla.[in] dwAllowedItems
TO bit a bit- OR combinación de marcas que indica qué acciones se permiten la pestaña actual:BCGP_MDI_CREATE_VERT_GROUP )puede crear un grupo vertical de la pestaña.
BCGP_MDI_CREATE_HORZ_GROUP )puede crear un grupo de tabulación horizontal.
BCGP_MDI_CAN_MOVE_PREV )puede mover una pestaña al grupo anterior de la pestaña.
BCGP_MDI_CAN_MOVE_NEXT )puede mover una pestaña al siguiente grupo de la ficha.
BCGP_MDI_CAN_BE_DOCKED - cambie un documento con fichas al estado acoplada (pertinente para los documentos con pestañas solo).
[in] bTabDrop
TRUE para mostrar el menú como resultado de arrastrar la pestaña sobre otro grupo con pestañas. FALSE para mostrar el menú como menú contextual en actualmente la pestaña activa.
Valor devuelto
Invalide este método en CMDIFrameWndEx Class- clase derivada.
Comentarios
Si no procesa OnShowMDITabContextMenu, el menú contextual no se mostrará. Esta función es generada por Asistente para aplicaciones MFC cuando se habilita la característica de los grupos de MDI organización por fichas.
Ejemplo
Las escrituras siguientes se muestra cómo OnShowMDITabContextMenu se utiliza en ejemplo de VisualStudioDemo: Aplicación 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;
}
Requisitos
encabezado: afxMDIFrameWndEx.h