CMDIFrameWndEx::OnShowMDITabContextMenu
Chamado pela estrutura antes de um menu de atalho é exibido em um dos guias.Válido somente para MDI catalogou grupos.
virtual BOOL OnShowMDITabContextMenu(
CPoint point,
DWORD dwAllowedItems,
BOOL bTabDrop
);
[in] point
O local de menu na tela coordena.[in] dwAllowedItems
A bits OU bit a combinação de sinalizadores que indica quais ações são permitidas a guia atual:BCGP_MDI_CREATE_VERT_GROUP - pode criar um grupo de tabulação vertical.
BCGP_MDI_CREATE_HORZ_GROUP - pode criar um grupo de guia horizontal.
BCGP_MDI_CAN_MOVE_PREV - pode mover um guia para o grupo anterior na guia.
BCGP_MDI_CAN_MOVE_NEXT - pode mover um guia para o próximo grupo de tabulação.
BCGP_MDI_CAN_BE_DOCKED - alternar um documento com guias ao estado conectado (relevante para documentos com guias somente).
[in] bTabDrop
TRUE para exibir o menu resultado de arrastar a guia em outro grupo com guias.FALSE para exibir o menu como um menu de atalho na guia ativa no momento.
Substitua esse método em Classe de CMDIFrameWndEx- classe derivada.
Se você não processa OnShowMDITabContextMenu, menu de atalho não será exibido.Essa função é gerada por Assistente para Aplicativo do MFC quando você ativa o recurso listado MDI de grupos.
O exemplo a seguir mostra como OnShowMDITabContextMenu é usado em exemplo de VisualStudioDemo: Aplicativo 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;
}
Cabeçalho: afxMDIFrameWndEx.h