CMDIFrameWndEx::OnShowMDITabContextMenu
Chamado pela estrutura antes que um menu de atalho é exibido em uma das guias.Válido para MDI com guias grupos somente.
virtual BOOL OnShowMDITabContextMenu(
CPoint point,
DWORD dwAllowedItems,
BOOL bTabDrop
);
Parâmetros
[in] point
O local do menu do coordenadas de tela.[in] dwAllowedItems
Uma combinação de operador bit a bit ou de sinalizadores que indica quais ações são permitidas para a guia corrente:BCGP_MDI_CREATE_VERT_GROUP -pode criar um agrupar de guia vertical.
BCGP_MDI_CREATE_HORZ_GROUP -pode criar um agrupar de guia horizontal.
BCGP_MDI_CAN_MOVE_PREV -pode mover uma guia para o agrupar de guias anterior.
BCGP_MDI_CAN_MOVE_NEXT -pode mover uma guia para o próximo agrupar de guias.
BCGP_MDI_CAN_BE_DOCKED -comutador um documento com guias para o estado encaixado (relevante apenas documentos com guias).
[in] bTabDrop
TRUE Para exibir o menu sistema autônomo resultado de arrastar a guia para outro agrupar com guias. FALSE Para exibir o menu sistema autônomo um menu de atalho na guia ativo no momento.
Valor de retorno
Ignore este método em um Classe CMDIFrameWndEx-classe derivada.
Comentários
Se você não processa OnShowMDITabContextMenu, não será exibido o menu de atalho. Esta função é gerada pelo MFC aplicativo assistente quando você ativa o recurso grupos com guias MDI.
Exemplo
O exemplo a seguir mostra como OnShowMDITabContextMenu é usado na Exemplo do VisualStudioDemo: Aplicativo do 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
Cabeçalho: afxMDIFrameWndEx.h